на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Основы программирования на языке Паскаль
b> case i of

1:predmet:='основы информатики';

2:predmet:='высшей математике';

3:predmet:='философии';

4:predmet:='архитектуре ЭВМ';

5:predmet:='истории Украины'; end;

writeln('введите оценку студента  ',fio,' no ',predmet);

M1: readln(oc[i,1]);

if (oc[i,1]<2) or (oc[i,1]>5) then

Begin writeln('введите правильно оценку'); goto M1; end;

if oc[i,1]>2 then Begin oc[i,2]:=0; oc[i,3]:=0; goto M4; end else

M2: writeln('введите вторую оценку студента ',fio,' по ',predmet);

readln(oc[i,2]);

if (oc[i,2]<2) or (oc[i,2]>5) then

Begin writeln('введите правильно оценку'); goto M2; end;

if oc[i,2]>2 then begin oc[i,3]:=0; goto M4; end else

M3: Writeln('введите третью оценку студента ',fio,' по ',predmet);

readln(oc[i,3]);

if (oc[i,3]<2) or (oc[i,3]>5) then

begin writeln('введите правильно оценку'); goto M3; end;

M4: end; end;

BEGIN { начало блока ввода оценок студентов}

writeln('при вводе оценки набираются: 5, если экзамен');

writeln('сдан на 5 и, если были пересдачи, то 2,2,3 ');

z: writeln('до первой положительной оценки');

writeln('задайте количество групп, не более 6 ');

readln(kgr);

for i:=1 to kgr do { установка индекса группы }

begin case i of { определяем группу по i }

1:n:=610;

2:n:=611;

3:n:=612;

4:n:=613;

5:n:=614;

6:n:=615;

else writeln('неправильно задано количество групп'); goto 2; end; end;

writeln('задайте количество студентов в группе ',n);

readln(kst[i]);

for j:=1 to kst[i] do { установка номера студента i в группе }

begin with gr[i,j] do { работать без составных имен }

begin namb:=n; writeln('введите фамилию ',j,' студента гр. ',namb);

readln(fio);

for k:=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. Общие замечания

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

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

Файл может быть связан с внешним носителем информации, т.е. располагаться на магнитном или СД диске, магнитной ленте, клавиатуре при вводе информации или на экране, принтере и при выводе её и т.д.

Файлы бывают стандартными, т.е. определенными разработчиками или администраторами операционной системы или вычислительной среды, а также пользователем, т.е. человеком, составляющим программы в каком-либо алгоритмическом языке (например в Pascal), или с помощью других программных продуктов (баз данных, редакторов и т.д.).

Каждый файл имеет свое имя, которое зарегистрировано в соответствующей директории (оглавлении).

Определение файлового типа строится по такой схеме:

Туре имя типа=file of тип компонент;

Var идентификатор,.., идентификатор: имя типа;

Например:

Туре zap=record

Nom: integer;

FIO: string [20];

oklad: real; end;

Ft=file of zap;

Var a, b, с: Ft;

Описаны три файла с именами а, b, с типа Ft. Компонентами файлов служат записи типа zap. Другими словами, файл схематично можно представить в виде «ленты» компонент, каждая из которых является записью типа zap. Доступ к компонентам файла может быть последовательным и прямым. Последовательный доступ - это когда для обращения к n-й компоненте необходимо «посмотреть» n-1 компонент; прямой доступ - обращение к компоненте идет прямо по «ключу» (номеру компоненты), без «просмотра» предыдущих компонент.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.