Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Pascal.doc
Скачиваний:
10
Добавлен:
06.09.2019
Размер:
3.69 Mб
Скачать

III. Домашнее задание.

1.Конспект.

2. ЗАДАЧА №3. Дана ведомость учащихся, занимающихся в кружке по программированию:

Алешина Елена 5 Павликова Юля 5

Ковалев Иван 5 Кемарская Ира 5

Андрианов Глеб 4 Агафонов Стас 5

Поддубный Игорь 4 Антонова Оля 5

Определить количество учащихся, занимающихся в кружке на 5, число учащихся с фамилией, начинающейся на букву "А".

3. Задание №4. Написать программу, которая вводит в режиме запросов заданное число записей вида :

Телевизор

Название Цена Диагональ Цветной или ч/б Производитель

Город Завод ФамилияДиректора

Запрос выводится с новой строки для каждого поля. Например:

Телевизор 1

Название . . . . . . РЕКОРД

Цена (тыс.). . . . . . 3000

Диагональ . . . . . . 59

Изображение (ц/ч). . . Ц

Производитель. . . . .

Завод . . . . . . . Фотон

Город . . . . . . . Москва

Директор. . . . . . Иванов

После ввода массива записей программа осуществляет в нем поиск

следующей информации:

1. Названия телевизоров с размером по диагонали больше 50 см.

2. Фамилии директоров, производящих телевизоры стоимостью свыше

2000 тыс. руб.

3. Названия городов, где выпускаются телевизоры стоимостью менее

1000 тыс. руб.

4. Заводы, выпускающие телевизоры с самым большим размером экрана.

5. Названия телевизоров с самым маленьким размером экрана.

6. Фамилии директоров, выпускающих самые дешевые телевизоры.

7. Города, где выпускают самые дорогие телевизоры.

Урок № 57-58

ПРАКТИЧЕСКАЯ РАБОТА № 6 НА ТЕМУ: “РАБОТА С ЗАПИСЯМИ”.

Цель: отработка практических навыков по составлению программ с записями.

Оборудование: компьютер, Среда Турбо-паскаль.

Ход работы.

1. На диске a создать каталог PR6.

2. Выбрать ход работы на “3”, на “4” или на “5”:

на “3” - выполнить упражнение № 1 и решить задачу № 3.

на “4” - выполнить упражнение № 2 и решить задачу “4”.

на “5” - решить задачу № 3 и № 4.

3. В тетради должно быть:

  • какая оценка выбрана учеником;

  • распечатки программ.

На диске - файлы в каталоге PR6 (имена произвольные, в комментариях указать номер упражнения или задачи, фамилию ученика)

Упражнение 1. Выполнить в тетради для практических работ:

Имеется описание:

type family=record

glavafamily: string[15];

vosrast1:18..100;

supruga: string[10];

vosrast2:18..100;

dety: string[5];

end;

var a,b:family;

Занести исходную информацию в переменную A, без использования оператора присоединения и продублировать ее в переменную B.

(Решение.

program pr1;

type family=record

glavafamily: string[15];

vosrast1:18..100;

supruga: string[10];

vosrast2:18..100;

dety: string[5];

end;

var a,b:family;

begin

a.glavafamily:=‘Петров А.В. ‘;

a.vosrast1:=65;

a.supruga:=‘Галина ‘;

a.vosrast2:50;

a.dety:=‘дочь ’;

b:=a;

end.

Упражнение № 2. Выполнить в тетради для практических работ:

Определить запись, включающую в себя следующую информацию:

  • название завода изготовителя;

  • название завода поставщика сырья;

  • номер магазина-потребителя;

  • названия производимых товаров, 50 наименований;

  • цена каждого товара за 1 штуку в рублях и копейках;

  • количество каждого товара в штуках.

Все наименования содержат не более 15 символов.

(Решение.

program zapis;

const maxn=30;

type magasin = record

zavod1: string[15];

zavod2: string[15];

numer:integer;

Proizv : record

tovar: array [1..50] of string;

zeva: array [1..50] of real;

kol: array[1..50] of integer;

end;

end;

inform = array [1..maxn] of magazin;

var a: inform;

begin

end.)

Задача №3. Дана ведомость учащихся, занимающихся в кружке по программированию:

Алешина Елена 5 Павликова Юля 5

Ковалев Иван 5 Кемарская Ира 5

Андрианов Глеб 4 Агафонов Стас 5

Поддубный Игорь 4 Антонова Оля 5

Определить количество учащихся, занимающихся в кружке на 5, число учащихся с фамилией, начинающейся на букву "А".

Решение. (Файл z4.pas)

program ttt4;

const m=15;

type t=record

fam:packed array[1..m] of char;

bal:integer

end;

var spisok:t;

sum1,sum2,n,i,k:integer;

begin sum1:=0;sum2:=0;

writeln('Введите число учащихся');

readln(n);

writeln('Введите таблицу: фамилия,имя,оценка');

for i:=1 to n do

begin

for k:=1 to m do

read(spisok.fam[k]);

read(spisok.bal);readln;

if spisok.bal=5 then sum1:=sum1+1;

if spisok.fam[1]='А' then sum2:=sum2+1;

end ;

writeln('количество учащихся, ','занимающихся на 5=', sum1:3);

writeln('число учащихся',' c фамилией на букву А=',sum2:3);

end.

Задача №4. Написать программу, которая вводит в режиме запросов заданное число записей вида:

Телевизор

Название Цена Диагональ Цветной или ч/б Производитель

Город Завод ФамилияДиректора

Запрос выводится с новой строки для каждого поля. Например:

Телевизор 1

Название . . . . . . РЕКОРД

Цена (тыс.). . . . . . 3000

Диагональ . . . . . . 59

Изображение (ц/ч). . . Ц

Производитель. . . . .

Завод . . . . . . . Фотон

Город . . . . . . . Москва

Директор. . . . . . Иванов

После ввода массива записей программа осуществляет в нем поиск

следующей информации:

1. Названия телевизоров с размером по диагонали больше 50 см.

2. Фамилии директоров, производящих телевизоры стоимостью свыше

2000 тыс. руб.

3. Названия городов, где выпускаются телевизоры стоимостью менее

1000 тыс. руб.

4. Заводы, выпускающие телевизоры с самым большим размером экрана.

5. Названия телевизоров с самым маленьким размером экрана.

6. Фамилии директоров, выпускающих самые дешевые телевизоры.

7. Города, где выпускают самые дорогие телевизоры.

Решение задачи( файл pr-zapis.pas)

program zapis;

const maxn = 30;

type TV = record

Name : string[20];

Price : 1 .. 32000;

Diagonal : 1 .. 50;

Color : char;

Proizv : record

city : string[25];

factory : string[50];

director : string[30];

end;

end;

tele = array [1..maxn] of TV;

var t : tele;

i,n : integer;

was : boolean;

procedure make_array (var n:integer; var t: tele);

begin

writeln (' Ввод массива записей ');

repeat

writeln ('Введите количество элементов n <= ',maxn);

readln (n);

until (n>=0) and (n<=maxn) ;

writeln (' Вводите массив ');

for i:=1 to n do

begin

writeln (' Телевизор ',i);

write (' Название . . . . . .');readln(t[i].Name);

write (' Цена (тыс.). . . . . .');readln(t[i].Price);

write (' Диагональ . . . . . .');readln(t[i].Diagonal);

write (' Изображение (ц/ч). . .');readln(t[i].Color);

writeln (' Производитель. . . . . ');

with t[i].Proizv do

begin

write (' Завод . . . . . . .');readln(city);

write (' Город . . . . . . .');readln(factory);

write (' Директор. . . . . .');readln(director);

end;

end;

end;

begin

make_array(n,t); {ввод массива записей}

was:=false; {признак того, что искомые телевизоры найдены}

writeln('Названия телевизоров стоимостью менее 2000 тыс.руб.');

for i:=1 to n do

if t[i].price < 2000 then

begin

writeln (t[i].name);

was:=true;

end;

if was=false then

writeln ('Не найдены');

end.