Основная часть Теоретическая часть. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Основная часть Теоретическая часть.

IV.

Основная часть Теоретическая часть.

1. Понятие и назначение комбинированного типа данных.

2. Содержание программы с комбинированным типом данных.

Работа учащихся с учебником. § 29.

10 мин.

Работа с учебником.

Составить тезисны конспект

 

V.

Основная часть Практическая часть.

Пример 2 стр. 193-194

Разбор задачи (См. текст ниже)

Чем комбинированный тип данных отличается от регулярного типа данных (массива)?

Что называют записью?

 

 

Работа учащихся за компьютером

Файлы с результатами отправить учителю

29 мин.

Индивидуальная работа учащихся за компьютером

VI.

Домашнее задание и итоги урока.

§ 29 повторение.

Запись домашнего задания в дневник

1 мин.

 

В некоторых программах, содержащих большое количество обращений к одному и тому же полю, такое положение приводит к однообразному повторению. Чтобы облегчить выполнение многократных ссылок для описанных структур вводится оператор With (в переводе с английского – предлог "с").

Общая форма записи:

  with <имя переменной> do <оператор>

  В рамках оператора, определяемого внутри оператора With, к полям определяемой переменной можно обращаться просто по имени. Например,

with Payroll[7].Residence do

ZipCode := 2345;

for i := 1 to Workers do

with Payroll[i] do

  if PayScale < 'G'

    then

         PayScale := Succ(PayScale);

Оператор with позволяет более компактно представлять часто используемые переменные. Посмотрите это на примере фрагмента программы, печатающего адрес рабочего № 14:

with Payroll[14].Residence do

begin

  writeln(HouseNumber,' ',StreetName);

  writeln(CityName,',',StateName,',',ZipCode);

end;

  В рамках составного оператора, следующего за with, каждое обращение к имени поля автоматически связывается с записью Payroll[14].Residence. Печать адресов всех рабочих выполняется при помощи следующего оператора цикла:

for i := 1 to Workers do

with Payroll[i].Residence do

begin

     writeln(HouseNumber,' ',StreetName);

     writeln(CityName,',',StateName,',',ZipCode);

end;

Операторы with могут быть вложенными. Приведенные ниже три оператора эквивалентны друг другу:

1. Payroll[i].Residence.HouseNumber := 50;

2. with Payroll[i].Residence do

HouseNumber := 50;

3. with Payroll[i] do

  with Residence do

     HouseNumber := 50;

Однако недопустимым является использование вложенных операторов With, в которых указываются поля одного типа, поскольку возникает неоднозначность конструкции. По этой причине приведенное использование вложенных операторов With является неверным:

with Payroll[5] do

with Payroll[17]do

   PayScale :='A';

Следует очень внимательно подходить к использованию вложенных операторов With, применение которых не только может привести к ошибкам, но также к потере наглядности структуры программы. Хотя оператор With является стандартным средством сокращения, его полезность должна еще проявиться. Конечной целью всякого хорошего программиста является написание не только короткой, но и понятной программы.

Рассмотрите решение задачи.

Задача. В массиве хранятся данные об учениках класса: школа, фамилия, класс. Вывести список учеников, которые учатся в восьмом классе.

Program LipovsevM;

Uses

Crt;

Type

Uchenik=record

                 Shkola : integer;

                 Fam : string[15];

                 Klass : integer;

              end;

Var

I,n,a,j : integer;

Massiv : array[1..100] of Uchenik;

Рrocedure Poisk;

Begin

for i:=1 to n do

if massiv[i].klass=8

   then

      with massiv[i] do

         writeln(Shkola:4,' ',Fam:15,' ',klass);

End;

Begin

ClrScr;

writeln('Введите число учеников ');

write('->');

read(n);

for i:=1 to n do

begin

    writeln('Введите через пробел номер школы и фамилию ученика ');

    write('->');

    with massiv[i] do

        begin

           readln(Shkola,Fam);

           write('Введите класс ученика (только число) ->');

           read(Klass);

        end;

end;

writeln('Ученики 8-ых классов:');

writeln('Школа  Фамилия Класс');

writeln('---------------------------------');

Poisk;

ReadKey;

End.



Поделиться:


Последнее изменение этой страницы: 2024-07-06; просмотров: 48; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.156 (0.006 с.)