Основы программирования на языке Паскаль
Методическое пособие - Компьютеры, программирование
Другие методички по предмету Компьютеры, программирование
1 to 5 do { обнуляем массив оценок }
for l:=1 to 3 do
o[k,l]:=0;
writeln(введите оценки студентов ,fio);
rea_ocenki(fio,o); end;end;end;
{ конец ввода оценок студентов }
{ отображение на экране введения оценок }
for i:=1 to kgr do
for j:=1 to kst[i] do
Begin with gr[i,j] do
Begin for k:=1 to 5 do
write(o[k,1],o[k,2],o[k,3], ); writeln; end; end;
{ конец вывода на экран оценок }
{ начало блока анализа успеваемости студентов }
for i:=1 to kgr do { индекс группы }
for j:=1 to kst[i] do { номер студента}
Begin kol_dvoek:=0; v:=0; { работать без составных имен }
with gr[i,j] do
Begin
for k:=1 to 5 do { номер предмета}
Begin
{ итак, анализируем состояние успеваемости студента, информация }
{ о котором хранится в записи gr[i,j]; так как мы работаем под уп-}
{равлениемоператора with gr[i,j], то можно пользоваться не }
{ составными именами полей }
case k of { определить название предмета j }
1:predmet:=основы информатики;
2:predmet:=высшая математика;
3:predmet:=философия;
4:predmet:=архитектура ЭВМ;
5:predmet:=история Украины; end;
if o[k,1]=2 then if o[k,2]=2 then if o[k,3]=2 then begin
writeln(студент ,fio, группы , namb, подлежит отчислению так как);
writeln(имеет три двойки по предмету ,predmet);
v:=1; readln; goto w; end { на новый предмет }
else Begin kol_dvoek:=kol_dvoek+2; goto w; end
else Begin kol_dvoek:=kol_dvoek+1; goto w; end;
w: end;
if v=1 then goto u { к новому студенту }
else if kol_dvoek=0 then goto u
else Begin
writeln(студент ,fio, группы ,namb, является разгильдяем так как);
writeln(имеет в зимнюю сессию ,kol_dvoek, двоек и является);
writeln(кандидатом на отчисление в весеннем семестре);
readln; end; end;
u: end; END.
Программа снабжена комментариями, поэтому при внимательном рассмотрении читается легко. Трудности могут возникнуть при разборе блока анализа результатов, поэтому мы приведем блок-схему логической части этого блока (рис. 9.1).
9.1. Комплексные данные
При работе с комплексными данными удобно пользоваться записями с двумя полями, первое содержит информацию о действительной части данного, а второе о мнимой части данного.
Program Prim45;
Type complex=record
deistv:real; mnim:real;
end;
Var a,b,c:complex;
BEGIN
a.deistv:=6.3;
a.mnim:=1.9; END.
9.2. Запись с вариантами
Записи, описанные выше, имеют строго определенную структуру. однако есть возможность создавать записи, имеющие несколько вариантов одного и того же поля. Вариантные поля записываются после описания безвариантных полей с помощью оператора Case.
ТУРЕ
zap=record
описание безвариантных полей;
Case имя поля: тип имени поля of
список констант выбора: (поле,... тип); ...
список констант выбора: (поле,... тип);
end;
Пример:
Туре zap=record
Nomer: byte; {фиксированные поля}
Articul: integer;
Case Flag: boolean of {вариантные поля}
TRUE: (cena l: integer);
FALSE: (cena 2; real);
end;
Var P, Si Zap;
поле Cena l доступно только тогда, когда Flag=TRUE
поле Cena 2 доступно только тогда, когда Flag=FALSE
При использовании записей с вариантами необходимо придерживаться следующих правил:
- все имена полей должны отличаться друг от друга, даже если они встречаются в различных вариантах;
- запись может иметь только одну вариантную часть, причем вариантная часть должна размещаться в конце её;
Если поле, соответствующее какой-либо метке, является пустым, то оно записывается следующим образом:
список констант выбора: ( );
Program Prim46;
Type zap=record
nomer:byte;
artikul:integer;
case flag:boolean of
true:(cena1:integer);
false:(cena2:real); end;
Var h,s:zap;
BEGIN with h do
Begin nomer:=1; artikul:=2345; flag:=true; cena1:=25;
writeln(nomer=,nomer, artikul=,artikul, cena1=,cena1);
flag:=false; cena2:=3.2;
writeln(cena2 ,cena2);
end; readln; END.
10. Файлы
10.1. Общие замечания
В практике программирования часто встречаются задачи, решаемые с применением малоизменяемых во времени данных. К ним относятся, например, задачи бухгалтерского учета оптимального планирования и т.п. Ввод данных с клавиатуры при каждом счете задачи очень трудоемок, а иногда просто невозможен из-за временных ограничений. Для решения этой проблемы в языках программирования реализована концепция файлов, что позволяет после разового набора информации запомнить ее на внешнем носителе и обращаться к ней непосредственно из обрабатывающих программ при каждом счете задачи.
Файл поименованная область памяти, как правило, на внешнем носителе, предназначенная для хранения информации. файл можно также считать структурированным типом данных, состоящим из последовательности компонент одного и того же типа