Методические указания по выполнению самостоятельной работы по дисциплине Основы программирования часть 2
учебно-методический материал на тему

Трегубова Елена Сергеевна

Методические указания по выполнению самостоятельной работы по дисциплине Основы программирования  часть 2

Скачать:

ВложениеРазмер
Файл mu_po_sr_chast_2_osnovy_programmirovaniya.docx284.45 КБ

Предварительный просмотр:

МИНИСТЕРСТВО ОБРАЗОВАНИЯ МОСКОВСКОЙ ОБЛАСТИ

ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ СРЕДНЕГО ПРОФЕСИИОНАЛЬНОГО

ОБРАЗОВАНИЯ МОСКОВСКОЙ ОБЛАСТИ

"КРАСНОГОРСКИЙ КОЛЛЕДЖ"

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

ДЛЯ ВЫПОЛНЕНИЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ

учебной дисциплины

ОП.05 ОСНОВЫ ПРОГРАММИРОВАНИЯ

в рамках основной профессиональной образовательной программы (ОПОП)

для специальности СПО

 09.02.03 (230115) Программирование в компьютерных системах

Красногорск

2014


                СОГЛАСОВАНО

на заседании отделения специальности 09.02.03 (230115) «Программирование в компьютерных системах»,
протокол №______________

от «____» _________ 2014г.

УТВЕРЖДАЮ

Заместитель директора по учебной работе ГБОУ СПО МО «Красногорский колледж»

_______________И.М. Рыжова

«______» ______________ 2014г.

СОГЛАСОВАНО

на заседании Методического совета колледжа,

протокол №_____________

от «____» ______________ 2014г.

Методические указания для выполнения самостоятельной работы студентов учебной дисциплины ОП.05 «Основы программирования» разработаны на основе программы учебной дисциплины, положения о самостоятельной работе студентов в ГБОУ СПО МО Красногорский колледж.

Организация-разработчик: Государственное бюджетное образовательное учреждение среднего профессионального образования Московской области «Красногорский колледж».

Разработчики:

Трегубова Елена Сергеевна – к.п.н., преподаватель высшей категории ГБОУ СПО МО «Красногорский колледж».

Рецензент:

Простяков Сергей Иванович – инженер программист НТЦ ОАО «Красногорский завод им. С.А. Зверева»

Теоретические задания по программированию на языке Паскаль

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

Варианты задания

  1. Функция, ее описание, вызов, понятие формальных и фактических параметров.
  2. Процедура, ее описание, вызов понятие формальных и фактических параметров.
  3. Понятие стандартных файлов.
  4. Понятие текстовых файлов.
  5. Множества, их понятие, операции над множествами.
  6. Понятие файлов и работа с ними.
  7. Массивы и индексы в Паскаль, их описание.
  8. Записи, их понятие и описание.
  9. Перечисляемый тип данных, его использования.
  10. Циклические операторы, оператор FOR.
  11. Циклические операторы, оператор REPEAT.
  12. Циклические операторы, оператор WHILE.
  13. Понятие выбирающего оператора, оператор выбора.
  14. Понятие выбирающего оператора, оператор условия.
  15. Оператор перехода, метки в программе, их описание.
  16. Операторы присваивания (арифметический, булевский).
  17. Классификация операторов Паскаль.
  18. Простейшие процедуры ввода-вывода.
  19. Стандартные функции в Паскаль.
  20. Типы выражений. Старшинство выполнения операций в выражениях.
  21. Простой стандартный тип (логический, литерный).
  22. Простой стандартный тип (целый, вещественный, ограниченный).
  23. Основные сведения о данных и их типах в Паскаль.
  24. Разделы Паскаль-программы и правила их записи.
  25. История создания языка. Синтаксис.
  26.  Разделы описания переменных.
  27. Классификация простых и составных операторов языка Паскаль.
  28. Оператор WIHT и его использование.
  29. Сходство и различие использования процедур и функций в Паскаль.
  30. Форматный вывод в Паскале.

Задание № 3 (часть 1 – 2часа)

Тема  Изучение стандартных типов данных. Организация ввода-вывода

Цель занятия

  1. Освоение простейшей структуры программы.
  2. Получение навыков и организации ввода-вывода значений стандартных типов данных.
  3. Получение практических навыков работы в диалоговом режиме.

Постановка задачи Организовать ввод и вывод данных заданных типов, снабдив распечатки соответствующими заголовками.

Содержание отчета

  1. Постановка задачи.
  2. Текст программы и результаты ее выполнения.
  3. Выводы.

Методические указания

  1. При вводе с терминала число и символы можно набрать как на одной строке, так и на различных строках. При этом следует помнить, что ввод со следующей строки осуществляется в том случае, если предыдущим оператором является READLN.
  2. Переменной логического типа можно присвоить значение либо в разделе констант, либо в операторе присваивания. Вводить значения переменных логического типа нельзя.
  3. При работе в диалоговом режиме следует перед операторами ввода использовать оператор вывода на экран приглашения – подсказки о том, что наступило время ввода информации и какой именно информации. Например: WRITELN (‘ВВЕДИТЕ ЦЕЛЫЕ ЧИСЛА K, L, M’).
  4. Выводить данные следует двумя способами: в стандартной форме и с указанием ширины поля вывода, при этом выводимую информацию необходимо снабдить заголовками.
  5. Пример программы:

PROGRAM LAB1;

USES CRT;

CONST LOG=TRUE;

VAR K,L,M:INTEGER;

X,Y:REAL;

S1,S2,S3:CHAR;

BEGIN

CLRSCR;

WRITELN ('ВВЕДИТЕ ЦЕЛЫЕ ЧИСЛА:');

READ (K, L, M);

WRITELN (' ':30,' ЦЕЛЫЕ ЧИСЛА');

WRITELN (' ':15,' СТАНДАРТНЫЙ ФОРМАТ' ,'       ':12,'ЗАДАННАЯ ШИРИНА ПОЛЯ');

WRITELN ('   ', K, L, M,'   ':5,'K=', K: 3,' L=',L: 2,' M=', M: 5);

WRITELN; WRITELN ('ВВЕДИТЕ ВЕЩЕСТВЕННЫЕ ЧИСЛА X, Y: ');

READLN (X, Y);

WRITELN ('    ':25, ' ВЕЩЕСТВЕННЫЕ ЧИСЛА');

WRITELN ('    ':5, ' СТАНДАРТНЫЙ ФОРМАТ','       ':18,' ЗАДАННАЯ ШИРИНА ПОЛЯ');

WRITELN ('  ':5, X, Y, '  ':10, ' X=', X: 8: 2,'Y=', Y:6:3);

WRITELN; WRITELN (' ВВЕДИТЕ СИМВОЛЫ S1, S2, S3:');

READLN (S1, S2, S3);

WRITELN ('   ':20, ' СИМВОЛЬНЫЕ: ',' S1=', S1, ' S2=', S2, ' S3=', S3);

WRITELN (' ПЕЧАТЬ СИМВОЛЬНЫХ ПЕРЕМЕННЫХ С ШИРИНОЙ ПОЛЯ 5:',S1:5,S2:5,S3:5);

WRITELN ('ЛОГИЧЕСКАЯ ПЕРЕМЕННАЯ =',LOG);

WRITELN ('   ':35, 'ПРОГРАММУ ВЫПОЛНИЛА ВОЛКОВА');

READKEY;

END.


Варианты задания

Номер варианта

Целые числа

Вещественные числа

Количество символов

Булевская

переменная

Количество

Формат

Количество

Формат

Стандартный

Ширина поля

Стандартный

Ширина поля

Точность

1

2

5

4

6

2

4

True

2

3

6

2

7

3

5

false

3

3

6

2

6

2

3

True

4

2

5

4

6

2

6

True

5

4

4

3

7

3

4

false

6

2

3

3

5

1

3

True

7

3

2

4

8

3

2

True

8

3

5

4

6

2

2

True

9

4

7

3

5

1

1

false

10

2

6

5

8

3

4

false

11

2

6

5

6

3

2

True

12

3

4

6

6

1

2

True

13

3

3

6

5

1

2

True

14

3

2

4

5

2

2

false

15

4

5

5

7

4

2

false

16

2

7

2

7

3

3

True

17

2

8

4

4

0

4

false

18

3

6

4

6

2

2

false

19

3

6

5

0

0

3

True

20

3

4

5

7

2

3

True

21

5

8

4

6

1

4

false

22

2

7

6

6

1

5

false

23

3

5

6

5

0

2

false

24

3

5

7

6

3

2

True

25

5

7

4

8

3

3

True

26

4

8

5

9

2

1

false

27

2

8

5

7

3

4

false

28

2

6

6

7

1

2

false

29

3

6

6

5

1

2

True

30

3

7

7

6

2

4

True


Задание № 3 (часть 2 – 2часа)

Тема  Вычисление выражений. Использование стандартных функций

Цель занятия

  1. Изучение порядка действий при вычислении выражений.
  2. Приобретение навыков в записи выражений на языке Паскаль и использовании стандартных функций.

Постановка задачи

  1. Найти значение функции Y(X) при заданном X. Используя стандартные функции, вычислить Y11=[Y], где [ ] означает целую часть числа; Y22=[Y0.5].
  2. Записать выражение, зависящее от координат точки X1 и Y1 принимающее значение TRUE, если точка принадлежит заштрихованной области, и FALSE, если не принадлежит. Для заданной точки вычислить это выражение и результат выдать на печать.

Содержание отчета

  1. Постановка задачи для конкретного варианта.
  2. Описание используемых стандартных функций.
  3. Текст программы.
  4. Результаты расчета

Методические указания

  1. Функции, отсутствующие в списке стандартных функций языка Паскаль, следует выразить через имеющиеся.
  2. Печать значения выражения в данной точке организовать, используя запись выражения в операторе WRITELN.
  3. Пример программы, которая вычисляет

Y(X)=3-x+1SIN(X) при заданном Х, печатает Y11,Y22 и проверяет принадлежность точки с координатами (X1,Y1) заштрихованной области.

(рис. 1) Исходные данные: X=-1.5, X1=0.5, Y1=1.2.

PROGRAM TOB;

USES CRT;

VAR X,X1,Y1,Y:REAL;

BEGIN

CLRSCR;

WRITELN ('ВВЕДИТЕ X:');

READLN (X);

Y:=EXP((-X+1)*LN(3))*SIN(X);

WRITELN ('ПРИ X=', X: 8: 3,'Y=',Y: 8:4);

WRITELN ('Y11=', TRUNC (Y): 4,' Y22=', ROUND (Y): 4);

WRITELN ('ВВЕДИ КООРДИНАТЫ X1, Y1');

READLN (X1, Y1);

WRITELN ((X1 >=0) AND (Y1 >=0) AND (SQR (X)+SQR (Y)<=1));

WRITELN ('    ': 10,'ПРОГРАММУ СОСТАВИЛ ИВАНОВ');

READKEY;

END.


Варианты задания

  1. а) Y=2-x + |x| при Х=4.741;

б) координаты используемой точки: (0.5;0.5).

Область изображена на рис. 2.

  1. а) Y=еx –sin(x) при Х=2.312;

б) координаты используемой точки: (1.5;0.5).

Область изображена на рис. 3

  1. а) Y= |x-1|+sin(x) при Х=12.7409;

б) координаты используемой точки: (0.2;0.9).

Область изображена на рис. 4.

  1. а) Y=xcos(x)+sin(3x) при Х=30.872;

б) координаты используемой точки: (0.75;-0.3).

Область изображена на рис. 5.

  1. а) Y=tg(x)+|x| при Х=-2.6312;

б) координаты используемой точки: (0.2;0.45).

Область изображена на рис. 6.

  1. а) Y=1+1/x+1/x2 при Х=-0.387;

б) координаты используемой точки: (0.5;-2.5).

Область изображена на рис. 7.

  1. а) Y=ch|x+1| при Х=4.352;

б) координаты используемой точки: (0.0;0.0).

Область изображена на рис. 8.

  1. а) Y=arcsin(x)+x2 при Х=0.112;

б) координаты используемой точки: (1.0;1.5).

Область изображена на рис. 9.

  1. а) Y=sin(x)arctg(x) при Х=-0.7129;

б) координаты используемой точки: (-0.5;0.9).

Область изображена на рис. 10.

  1. а) Y=5arctg(x) при Х=-4.4172

б) координаты используемой точки: (1.5;0.0).

Область изображена на рис. 11.

  1. а) Y=ch|x+2| при Х=3.123;

б) координаты используемой точки: (0.3;0.2).

Область изображена на рис. 12.

  1. а) Y=arccos|x+1| при Х=0.345;

б) координаты используемой точки: (-0.5;0.3).

Область изображена на рис. 13.

  1. а) Y=2-x+2+ln|x| при Х=-1.521;

б) координаты используемой точки: (-0.5;-0.5).

Область изображена на рис. 14.

  1. а) Y=ln(x+1)+x3 при Х=2.571;

б) координаты используемой точки: (1.5;1.5).

Область изображена на рис. 15.

  1. а) Y=x2cos(x)+sin2x при Х=31.871

б) координаты используемой точки: (0.2;-0.5).

Область изображена на рис. 16.

  1. а) Y=6arcctg(x) при Х=-2.237;

б) координаты используемой точки: (1.5;0.5).

Область изображена на рис. 17.

  1. а) Y=ch|x|+sh|x| при Х=-4.289;

б) координаты используемой точки: (2.5;-0.5).

Область изображена на рис. 18.

  1. а) Y=cos3x+cos2x+cos(x) при Х=1.324;

б) координаты используемой точки: (0.1;0.2).

Область изображена на рис. 19.

  1. а) Y=e-x x при Х=2.125;

б) координаты используемой точки: (0.6;0.2).

Область изображена на рис. 20.

  1. а) Y=1+ln2 x при Х=0.4371;

б) координаты используемой точки: (-0.6;0.5).

Область изображена на рис. 21.

  1. а) Y=1+ex +x3 при Х=0.581;

б) координаты используемой точки: (0.4;-0.2).

Область изображена на рис. 22.

  1. а) Y=1/(1+sinx) при Х=1.012;

б) координаты используемой точки: (-0.7;0.2).

Область изображена на рис. 23.

  1. а) Y=x+lnx при Х=3.531;

б) координаты используемой точки: (1.5;0.2).

Область изображена на рис. 24.

  1. а) Y=e-x ch(x) при Х=3.521;

б) координаты используемой точки: (2.0;-0.5).

Область изображена на рис. 25.

  1. а) Y=cos(x)e-x при Х=1.578;

б) координаты используемой точки: (3.5;-1.5).

Область изображена на рис. 26.

  1. а) Y=sin(x2 +1) при Х=1.212;

б) координаты используемой точки: (-2.5;-1.5).

Область изображена на рис. 27.

  1. а) Y=x2 –cos(x) при Х=0.2314;

б) координаты используемой точки: (0.2;-0.5).

Область изображена на рис. 28.

  1. а) Y=x(1-cos(x)) при Х=0.6327;

б) координаты используемой точки: (0.1;0.9).

Область изображена на рис. 29.

  1. а) Y=sin(2x+1)ln|x| при Х=0.435;

б) координаты используемой точки: (0.3;-0.3).

Область изображена на рис. 30.

  1. а) Y=0.5+sh2 (x)  при Х=2.381;

б) координаты используемой точки: (-0.2;-2.0).

Область изображена на рис. 31.


Задание № 4 (4 часа)

Тема Оператор варианта

Цель задания

  1. Ознакомление с оператором варианта  и перечисляемыми типами.
  2. Получение навыков в организации ввода/вывода значений переменных перечислимых типов данных.

Постановка задачи

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

Содержание отчёта

  1. Постановка задачи для конкретного варианта.
  2. Блок-схема программы.
  3. Текст программы.
  4. Результат отладки по тестам, и счета основного варианта.
  5. Анализ ошибок.

Методические указания

  1. Задание может быть выполнено двумя способами:

а)        номер квартала, дата и день недели задаются непосредственно в программе в виде констант;

б)        исходная дата и день надели вводится при помощи оператора варианта.

  1. Учесть переход на новую неделю, новые месяц,  год, квартал, високосный или невисокосный год.
  2. Пример программы, которая по заданной дате (число, месяц, год, квартал) определяет дату следующего дня:

PROGRAM DAY1;

USES CRT;

LABEL l1,l2;

VAR CH,DAY,YEAR,SEM,KV: INTEGER;

DAYS,MESA,DN:STRING;

N: BOOLEAN;

BEGIN

N:=TRUE;

CLRSCR;

WRITELN('Введите дату, день недели, месяц, год в формате ДДдММГГГГ,');

WRITELN(' ');

READLN(CH,DAY,SEM,YEAR);

CLRSCR;

IF (CH<1)OR(CH>31) THEN

BEGIN

N:=FALSE; WRITELN(' '); WRITELN(#7);

END;

IF (DAY<1)OR(DAY>7) THEN

BEGIN

N:=FALSE; WRITELN(' '); WRITELN(#7);

END;

IF (YEAR<1)OR(YEAR>3000) THEN

BEGIN

N:=FALSE; WRITELN(' '); WRITELN(#7);

END;

IF (SEM<1)OR(SEM>12) THEN

BEGIN

N:=FALSE; WRITELN(' '); WRITELN(' ');

END;

IF NOT (N) THEN GOTO l1;

CASE SEM OF

1,3,5,7,8,10:IF CH=31 THEN

BEGIN

CH:=1; SEM:=SEM+1;

END

ELSE CH:=CH+1;

2: IF (CH=28) AND (YEAR MOD 4<>0) OR (YEAR MOD 100=0) AND (YEAR MOD 400<>0) THEN

BEGIN

CH:=1; SEM:=3;

END

ELSE IF CH<29 THEN CH:=CH+1;

4,6,9,11: IF CH=30 THEN

BEGIN

CH:=1; SEM:=SEM+1;

END

ELSE IF CH<30 THEN CH:=CH+1;

12: IF CH=31 THEN

BEGIN

CH:=1; YEAR:=YEAR+1; SEM:=1;

END

ELSE CH:=CH+1;

ELSE

BEGIN

WRITELN('Вы не верно ввели число',#7);GOTO l1;

END;

END;

CASE SEM OF

1: MESA:='ЯНВАРЬ';

2: MESA:='ФЕВРАЛЬ';

3: MESA:='MAPT';

4: MESA:='АПРЕЛЬ';

5: MESA:='МАЙ';

6: MESA:='ИЮНЬ';

7: MESA:='ИЮЛЬ';

8: MESA:='АВГУСТ';

9: MESA:='СЕНТЯБРЬ';

10: MESA:='ОКТЯБРЬ';

11: MESA:='НОЯБРЬ';

12: MESA:='ДЕКАБРЬ';

END;

IF SEM<4 THEN KV:=1;

IF (SEM>3)AND(SEM<7) THEN kv:=2;

IF (SEM>6)AND(SEM<10) THEN KV:=3;

IF SEM>9 THEN KV:= 4;

DAY:=DAY+1; IF DAY=8 THEN DAY:=1;

CASE DAY OF

1: DN:='ПОНЕДЕЛЬНИК';

2: DN:='BTOPHHK';

3: DN:='СРЕДА';

4: DN:='ЧETBEPГ';

5: DN:='ПЯТНИЦА';

6: DN:='CУББOTA';

7: DN:='ВОСКРЕСЕНЬЕ';

END;

WRITELN('Следующей датой будет');

WRITELN('ГOД:',YEAR,',KBAPTAЛ:',KV,',MECЯЦ:',MESA,',ДЕНЬ НЕДЕЛИ:',DN,',ЧИСЛО:',ch,'.');

l1:WRITELN;

WRITELN('НАЖМИТЕ ЛЮБУЮ КЛАВИШУ');

l2: IF NOT KEYPRESSED THEN GOTO l2;

WRITE(#7);

CLRSCR;

END.

Варианты задания

Номер варианта

Номер квартала

Дата и день недели, год

1

1

27 февраля пятница 1991

2

2

12 апреля воскресенье 1810

3

3

26 августа среда 1992

4

4

30 ноября понедельник 1980

5

1

23 марта понедельник 1882

6

2

9 мая суббота 1993

7

3

1 сентября вторник 1992

8

4

9 декабря среда 1998

9

1

12 января понедельник 2000

10

2

1 мая пятница 1930

11

3

30 августа воскресенье 2000

12

4

7 октября среда 1996

13

1

23 января пятница 1989

14

2

11 мая понедельник 1984

15

3

22 сентября вторник 1982

16

4

16 ноября понедельник 1962

17

1

29 марта воскресенье 1956

18

2

1 июня понедельник 1934

19

3

13 августа четверг 1975

20

4

21 декабря понедельник 1974

21

1

31 января понедельник 1962

22

2

21 апреля воскресенье 1953

23

3

31 августа вторник 1988

24

4

31 декабря понедельник 1991

25

1

28 февраля среда 1980

26

2

30 июня пятница 1965

27

3

1 сентября воскресенье 1997

28

4

1 ноября понедельник 1800

29

1

29 февраля воскресенье 1981

30

2

31 мая воскресенье 1992


Задание №5 (4часа)

Тема Операторы цикла

Цель задания

  1. Получение навыков в использовании оператора цикла с параметром.
  2. Знакомство с методами оптимизации программ.

Постановка задачи

Составить программу вычисления значений функции F(X) на отрезке [А,В] в точках Xi=A+iH, где Н=(В-A)/M, M – заданное целое число.

Содержание отчёта

  1. Постановка задачи.
  2. Текст программы.
  3. Таблица результатов.
  4. Анализ допущенных ошибок.

Методические указания

  1. Для задания значений и соответствующих значений функции следует использовать простые переменные.
  2. Значение шага Н должно вычисляться один раз.
  3. При изменении значения аргумента X использовать оператор  присваивания Х:=Х+Н, а не оператор с использованием операции умножения Х:=А+I*Н, что существенно сокращает время выполнения программы.
  4. Пример типовой программы:

Вычислить    F(X)=sin(X2 +K),   при   А=2π/12.   В=4π/6,   М=10

PROGRAM TAB;

USES CRT;

CONST M=10;

VAR X,A,Y,B,H,F:REAL;

BEGIN

CLRSCR;

A:=2*PI/12; B:=4*PI/6;

H:=(B-A)/M;

X:=A;

WHILE(X<=B) DO

BEGIN

Y:=X*X+1; F:=SIN(Y);

WRITELN('F(',X:4:2,')=',F:8:5);

X:=X+H;

END;

READKEY;

END.


Варианты задания

Номер варианта

Функция

Параметры

М

А

В

1

x-sin(x)

0

π/2

10

2

sin(x)

π /4

π/2

15

3

cos(x)

π /3

2π/3

20

4

tg(x)

0

π/4

10

5

ctg(x)

π/4

π/2

15

6

arcsin(x)

0

1

20

7

arcos(x)

0.5

1

10

8

arctg(x)

2

7

15

9

sin(x)-cos(x)

0

π/2

20

10

xsin(x)

0

10

11

sin(1/x)

π/8

2/π

15

12

cos(1/x)

π/4

4/π

20

13

sin(x2)

π/6

2π/3

10

14

cos(x2)

π/3

3π/2

15

15

sin(x)+cos(x)

0

π/4

20

16

cos(x)+ctg(x)

π/4

π/2

10

17

tg(x/2)

0

2π/3

15

18

tg(x/2)+cos(x)

π/2

π

20

19

ctg(/3)+sin(x)

π/4

π/2

10

20

sin(x/4)/2

π/2

π

15

21

ctg(x/3)+sin(x2)

π/4

π/2

20

22

tg(x/2)+cos(x2)

π/2

π

10

23

2xcos(x2)

π/3

3π/2

15

24

2xsin(x2)

π/6

2π/3

20

25

cos(x)+sin(x)

0

π/2

10

26

ctg(x)+1

3

5

15

27

sin(x)/x

0.2

0.4

20

28

x2-cos(x)

0.4

0.6

10

29

1/(1+sinx)

π/3

π/6

15

30

x(1-cosx)

0.4

0.8

20


Задание № 6 (2 часа)

Тема Работа с массивами чисел

Цель занятия

  1. Получение практических навыков в работе с массивами
  2. Знакомство с алгоритмами упорядочения

Постановка задача

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

Содержание отчёта

  1. Постановка задачи для конкретного варианта
  2. Текст программы.
  3. Тесты. Результаты отладки на тестах.
  4. Анализ допущенных ошибок.
  5. Результаты расчётов.

Методические указания

  1. Исходные данные должны включать и положительные числа, и отрицательные, и нули.
  2. Пример программы. Дан одномерный  массив найти в нём максимальный элемент.

PROGRAM MAS;

USES CRT;

VAR M:ARRAY[1..5] OF REAL;

MAX:REAL;

MAXI, I:INTEGER;

BEGIN

CLRSCR;

WRITELN('ВВЕДИТЕ ИСХОДНЫЙ МАССИВ');

FOR I:=1 TO 5 DO READ(M[I]);

MAX:=M[1];

FOR I:=1 TO 5 DO

BEGIN

IF MAX1

MAX:=M[I];

MAXI:=I;

END;

END;

WRITELN('МАКСИМАЛЬНЫЙ ЭЛЕМЕНТ=',MAX:5:2);

READKEY;

END.


Варианты задания

  1. В массиве из 20 целых чисел найти наименьший элемент и поменять местами  первым элементом.
  2. В массиве из 10 целых чисел найти наименьший элемент и поменять его местами с последним элементом.
  3. В массиве из 15 вещественных чисел найти наибольший элемент и поменять его местами с последним элементом,
  4. В массиве из 25 вещественных чисел найти наименьший элемент и поменять его местами с первым элементом.
  5. Упорядочить по неубыванию массив, содержащий 20 целых чисел.
  6. Упорядочить по невозрастанию массив, содержащий 25 вещественных чисел.
  7. Упорядочить по неубыванию массив, содержащий 15 вещественных чисел.
  8. Упорядочить по невозрастанию массив, содержащий 25 вещественных чисел.
  9. Вычислить сумму и количество элементов массива Х(100) для 0<=Х<=1
  10. Вычислить среднее арифметическое значение элемента положительного массива А(80).
  11. Переписать элементы массива Х(70) в массив Y и подсчитать их количество, (-1 <=Х<=1).
  12. Определить максимальный элемент массива В(50) и его порядковый номер.
  13. Вычислить минимальный элемент массива С(40) и его порядковый номер.
  14. Найти максимальный и минимальный элементы массива D(80) и поменять их местами,
  15. Вычислить среднее геометрическое элементов массива Y(20).
  16. Расположить в массиве R сначала, положительные, а затем отрицательные элементы массива Z (30).
  17. В массиве N(50) определить сумму и количество элементов массива, кратным трём.
  18. Вычислить сумму и количество элементов массива X(N).
  19. Найти среднее геометрическое элементов массива А, где а>0, N<=40.
  20. Переписать в массив Y подряд положительные элементы массива X(N), где Х>0, N<=40.
  21. Определить максимальный элемент массива В(k) и его порядковый номер, где Х<0, К<=40.
  22. Определить минимальный элемент массива С(k) и его порядковый номер, где -1 <=Х<=1, К<=20.
  23. В массиве F(45) подчитать количество положительных и отрицательных элементов.
  24. В массиве Y(30) найти максимальный элемент и заменить его на 0.
  25. В массиве А(20) найти последний отрицательный элемент и вывести его номер.
  26. В массиве С(15) найти последний чётный элемент и поставить его на место первого элемента.
  27. В массиве В(25) на место всех положительных элементов записать нули, а все отрицательные элементы сложить. На печать вывести новый массив и сумму отрицательных элементов.
  28. В массиве А(10) найти минимальный и максимальный элементы, соответственно поменять с первым и последним элементами массива.
  29. Из массива Х(20) выбрать все чётные элементы и переписать их в массив А.
  30. Из массива Y(l5) выбрать все нечётные элементы и переписать их в тот же массив.

Задание № 7 (4часа)

Тема  Организация программ с использованием процедур

Цель задания

  1. Получение навыков в написании программ с использованием процедур

Постановка задачи

По заданию варианта составить программу с использованием процедуры, глобальные параметры не использовать.

Содержание отчёта

  1. Постановка задачи (исходя из конкретного задания варианта).
  2. Текст программы и результаты её выполнения.
  3. Выводы.

Методические указания

  1. Если в качестве исходной информации в процедуру передаётся массив, то его следует передавать по ссылке для экономии памяти, так как в этом случае при вызове процедуры не образуется локальный массив.
  2. Несмотря на то что обрабатываемые массивы имеют разную длину, они описываются в программе как массив одного и того же типа, так как при обращении к процедуре типы соответствующих формальных и фактических параметров должны совпадать.
  3. Приведённая ниже программа.

Постановка

Переписать положительные элементы массивов Х( 100) и Y(100) в массив Z подряд. Запись положительных элементов в массив осуществить в процедуре.

PROGRAM SORT;

USES CRT;

CONST N=200;

TYPE MAS=ARRAY[1..N] OF REAL;

VAR I,NR,MR: INTEGER;

X,Y,Z: MAS;

PROCEDURE ST(VAR A,C:MAS; N,L,K:INTEGER);

VAR J:INTEGER;

BEGIN

K:=L;

FOR J:=1TO N DO

IF A[I]>0 THEN

BEGIN

K:=K+1;

C[K]:=A[J];

END;

END;

BEGIN

CLRSCR;

WRITE('NR MR');

READ (NR,MR);

WRITE('X');

FOR I:=1 TO NR DO READ(X[I]);

WRITE('Y');

FOR I:=1 TO MR DO READ(Y[I]);

ST(X,Z,0,NR,NR+MR);

ST(Y,Z,1,MR,NR+MR);

FOR I:=1 TO N DO

WRITE (Z[I]);

END.

Варианты задания

  1. Заданы 4 вектора X(3), Y(3), Z(4), P(4). Логической переменной А присвоить значение TRUE, если скалярное произведение векторов X и Y больше скалярного произведения Z и P, иначе А присвоить FALSE. Вычисление скалярного произведения оформить в виде процедуры.
  2. Заданы две матрицы А(3,3) и В(3,3). Проверить, является ли произведение этих матриц перестановочным, т.е. проверить равенство АВ=ВА. Если ответ положительный, напечатать “АВ=ВА”, иначе напечатать "Произведение не перестановочно". Вычисление произведения двух матриц оформить в виде процедуры.
  3. Заданы два вектора Х(4) и Y(5). Логической переменной A присвоить значение TRUE, если длина вектора X больше длины вектора Y и присвоить FALSE в противном случае. Вычисление длины вектора оформить в виде процедуры.
  4. Заданы две матрицы А(3,3) и В(4,4). Выяснить и напечатать, сколько из них являются симметричными (0.1 и 2). Матрица называется симметричной, если транспонированная матрица равна исходной. Транспонирование матриц оформить в виде процедуры.
  5. Заданы два массива А(4) и В(6). Переменной С присвоить значение 1, если максимальный элемент массива А больше максимального элемента массива В; 0, если максимальные элементы массивов равны; и -1, если максимальный элемент массива A меньше максимального элемента массива В. Поиск максимального элемента оформить в виде процедуры.
  6. Четыре точки заданы своими координатами Х(2), Y(2), Z(2), P(2). Выяснить и напечатать какие из них находятся на максимальном расстоянии друг от друга. Вывести значение этого расстояния. Вычисление расстояния между двумя точками оформить в виде процедуры.
  7. Четыре точки заданы своими координатами Х(3), Y(3), Z(3), Р(3). Выяснить и напечатать какие из них находятся на максимальном расстоянии друг от друга. Вывести значение этого расстояния. Вычисление расстояния между двумя точками оформить в виде процедуры.
  8. Заданы две матрицы А(3,3) и В(4,4). Построить таблицу функций у=сх2+р, при х меняющемся от 0 до 1 с шагом 0.1, где с - след матрицы А, р - след матрицы В. Следом матрицы называется сумма элементов главной диагонали. Вычисление следа матрицы оформить в виде процедур.
  9. Заданы три массива Х(4), Y(3), Z(5). Упорядочить по возрастанию три числа а, b, с, где а - минимальный элемент массива X, b - минимальный элемент массива Y, с минимальный элемент массива Z. Поиск минимального элемента массива оформить в виде процедуры.
  10. Заданы 2 вектора X(3), У(3) и матрица А(3,3). Найти С и В, где С - произведение вектора X на матрицу А, вектор В - произведение вектора Y на матрицу А. Вычисление произведения вектора на матрицу оформить в виде процедуры.
  11. Заданы три матрицы А(3,3), В(2,2), С(3,3). Найти минимальное из 3-х чисел х, у, z, где х - след матрицы А, у - след матрицы В, z - след матрицы С. Следом матрицы называется сумма элементов главной диагонали. Вычисление следа оформить в виде процедуры.
  12. Заданы стороны двух треугольников: АВС (стороны а, в, с) и PLF (стороны p, l, f). Переменной S присвоить значение -1, если площадь треугольника ABC меньше или равна площади треугольника PLF; и значение 1, если площадь   треугольника ABC больше площади PLF. Площадь треугольника MNK со сторонами m, n, k вычисляется по формуле Герона w=r*(r-m)*(r-n)*(r-k), где г- полупериметр треугольника MNK. Вычисление площади треугольника оформить в виде процедуры.
  13. Построить таблицу функций z=sh(x+y), где х меняется от 0 до 1 с шагом 0.2, у меняется от 2 до 3 с шагом 0.1. Гиперболический синус вычисляется по формуле: sh(r)=(er-e-r)/2. Вычисление гиперболического синуса оформить в виде процедуры.
  14. Вычислить суммы положительных элементов массивов Х(60), Y(60), Z(70). Вычисление суммы оформить в виде процедуры.
  15. Вычислить среднее арифметическое положительных элементов для массивов А(100), В(100), С(100). Среднее арифметическое оформить в виде процедуры.
  16. Подсчитать количество элементов матриц Х(10,15) и Y(20,12), удовлетворяющих условиям 0≤xij≤1 и 0≤yij≤1. Количество элементов подсчитывать с помощью процедуры.
  17. Подсчитать число нулевых элементов для матриц А(20,20), В(30,30). Число нулевых элементов подсчитывать в процедуре.
  18. Вычислить суммы элементов нижних треугольных матриц для А(15,15) и В(20,20). Суммы вычислять в процедуре.
  19. Найти наибольшие элементы и их порядковые номера массивов Х(80), Y(70). Нахождение наибольших элементов оформить в виде процедуры.
  20. Переписать положительные элементы массива Х(100) и Y(80) в массив Z подряд. Запись в массив Z осуществлять в процедуре.
  21. Найти наименьшие элементы и номера строк и столбцов, в которых они расположены, для матриц A(10,15) и В(15,12), используя процедуру.
  22. Вывести на печать элементы целочисленных матриц Н(5,8) и М(10,б) кратным трём (с помощью процедуры).
  23. Вычислить и запомнить количество отрицательных элементов каждого столбца для матриц А(10,10), В(15,15). Используя процедуру.
  24. Найти среднее значения и стандартные отклонения для элементов массивов Х(100), У(100), с помощью процедуры.
  25. Вычислить суммы и количества элементов, находящихся в интервале от А до В для матриц X(10,8) и У(10,2), используя процедуру.
  26. Преобразовать массивы Х(50) и У(60), расположив в них подряд только положительные элементы. Вместо остальных элементов записать нули, используя процедуру.
  27. Даны две матрицы А(12,12) и В(10,10) используя процедуру, организовать ввод этих матриц и подсчитать в каждой сумму положительных элементов.
  28. В массивах К(10) и Н(15) упорядочить элементы по возрастанию, используя процедуру.
  29. В матрицах B(10,10) и P(15,15) на место отрицательных элементов записать 1, уровне выполнить с помощью процедуры.
  30. В матрицах Х(40,40) и Y(100,100), подсчитать сумму положительных элементов стоящих над главной диагональю. Суммы подсчитать с помощью процедуры.

 Задание № 8 (4 часа)

Тема  Работа с множественными типами данных

Цель задания

  1. Получение навыков в задании переменных множественного типа и выполнении простейших операций над ними.
  2. Знакомство с задачами, в которых целесообразно использовать переменные множественных типов.

Постановка задачи

  1. Ознакомиться с конечным и упорядоченным множественном символов, определённым на используемой для выполнения задания ЭВМ.
  2. Составить программу для одного из вариантов.

Содержание отчёта

  1. Постановка задачи.
  2. Текст программы и результаты её выполнения.
  3. Комментарии к тексту программы.
  4. Выводы.

Методические указания

  1. Программа должна правильно работать для произвольного набора символов. Для выполнения задания следует ознакомиться LAT. Входная строка символов может быть длиннее строки экрана терминала, при этом программа работает не с функцией EOLN, а с признаком конца строки, который задается программистом.
  2. Примерная программа:

Дана непустая последовательность символов. Требуется построить и напечатать множество, элементами которых является встречающаяся в последовательности цифры от ‘5’ до ‘9’.

PROGRAM POSL;

USES CRT;

VAR A,I,J: CHAR;

        B:SET OF '5'..'9';

LABEL L;

BEGIN

CLRSCR;

B:=[ ];

WRITELN('ВВЕДИТЕ ПОСЛЕДОВАТЕЛЬНОСТЬ:');

REPEAT

READ(A);

IF A IN ['5'..'9'] THEN B:=B+[A];

UNTIL EOLN;

WRITELN('ЦИФРЫ ОТ 5 ДО 9 В ЭТОЙ ПОСЛЕД-ТИ:');

FOR I:='5' TO '9' DO

IF I IN B THEN WRITE('  ',I);

IF B=[ ] THEN WRITELN('ОТСУТСТВУЮТ :');

READKEY;

END.

Варианты задания

Дана непустая последовательность символов. Требуется построить и вывести на печать множество, элементами которого является встречающиеся в последовательности:

  1. цифры от ‘0’ до ‘9’;
  2. буквы от ‘A’ до ‘F’ и от ‘Х’ до ‘Z’;
  3. буквы от ‘G’ до ‘N’ и цифры от ‘0’ до ‘9’;
  4. знаки препинания;
  5. буквы от ‘А’ до ‘Z’ и цифры от ‘0’ до ‘9’;
  6. буквы от 'Т' до 'X' и знаки препинания;
  7. цифры от '5' до '9' и знаки арифметических операций;
  8. знаки арифметических операций и знаки препинания;
  9. цифры и знаки арифметических операций;
  10. знаки препинания и буквы от ‘Е’ до ‘N’;
  11. знаки операций отношения;
  12. цифры от ‘3’ до '9', буквы от ‘А’ до ‘F’ и знаки препинания;
  13. знаки арифметических операций и операций отношения;
  14. буквы от ‘F’ до ‘M’ и знаки арифметических операций;
  15. знаки препинания и операций отношения;
  16. скобки всех видов и цифры от '0' до ‘9’;
  17. цифры от ‘1’ до ‘7’ и знаки препинания;
  18. знаки арифметических операций и цифры от ‘0’ до ‘5’;
  19. цифры, операции отношения и буквы от ‘Т’ до ‘X’;
  20. согласные буквы английского алфавита;
  21. гласные буквы английского алфавита;
  22. все символы не являющиеся буквами английского алфавита;
  23. знаки препинания и гласные буквы английского алфавита;
  24. спецсимволы( @ $ % # ^ & * ~ )
  25. цифры, знаки арифметических операций и спецсимволы;
  26. операции отношения и спецсимволы;
  27. гласные английского алфавита скобки всех видов,
  28. буквы английского алфавита, знаки операций;
  29. спецсимволы, знаки препинания, знаки отношения;
  30. скобки, знаки препинания, знаки арифметических операций.

 Задание № 9

Тема  Работа с внешними файлами

Цель задания

Ознакомление с возможностями организации файлов на внешних носителях в используемой ЭВМ.

  1. Получение практических навыков работы с внешними файлами.

Постановка задачи

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

  1. Фамилия, имя, отчество.
  2. Год рождения.
  3. Год окончания школы.
  4. Оценки в аттестате.
  5. Признак - нуждается ли в общежитии.
  6. Оценки вступительных экзаменов.

Разработать программу, которая создавала файл на внешнем носителе, удаляла из внешнего файла все записи, удовлетворяющие условию, заданному в варианте, распечатать информацию, оставшуюся в файле. Добавить N записей в начало (конец) внешнего файла и распечатать записи полученного файла согласно варианту.

Содержание отчёта

  1. Постановка задачи,
  2. Анкетные данные абитуриентов.
  3. Блок схема.
  4. Текст программы и протокол её работы (протокол должен содержать распечатку данных созданного файла, распечатку после удаления данных и распечатку после добавления данных). По заданию можно составить две программы или все выполнить в одной программе.
  5. Выводы.

Методические указания

  1. При подготовке исходных данных необходимо учесть, что выходная информация программы обработки внешнего файла должна составлять не менее одной четверти от входной.
  2. Запись данных во внешний файл должна иметь структуру, аналогичную структуре созданного файла.
  3. При оставлении программы обработки данных, хранящихся во внешнем файле, необходимо ознакомиться с предложенной программой FA1 (удаление) и FA2 (добавление).

Постановка

Разработать программу записи подготовленных данных во внешний файл и программу обработки созданного файла.

  1. Удалить из внешнего файла записи об студентах, нуждающихся в общежитии и получивших хотя бы одну тройку.
  2. Используя внешний файл, содержащий исходные данные добавить N записей и распечатать список абитуриентов сдавших экзамены с двумя оценками 4 и 5.

PROGRAM FA1;

USES CRT;

TYPE

ZAP=RECORD

       FIO:STRING[14];

       GODR:INTEGER;

       GODO:INTEGER;

       OCEN:RECORD;

       LITER, MATEMAT, RUSYZ:WORD;

       PRZ:INTEGER;

END;

OCWE=RECORD

           MATEMAT,RUSYZ:WORD;

END;

VAR FLAG:WORD;

A:ZAP;

F,F1:FILE OF ZAP;

BEGIN

CLRSCR;

ASSIGN (F,'X:\USERS\GROUPS\1ASY98\MAD\st.dat');

REWRITE (F);          {СОЗДАНИЕ ФАЙЛА}

FLAG:=1;

WHILE FLAG=1DO

BEGIN

WITH A,OCEN,OCWE DO

BEGIN

WRITELN('ФАМИЛИЯ');

READLN(FIO);

WRITELN('ГOД РОЖДЕНИЯ');

READLN(GODR);

WRITELN('ГОД ОКОНЧАНИЯ ШКОЛЫ');

READLN(GODO);

WRITELN('ОЦЕНКИ В АТТЕСТАТЕ');

WRITELN(' литературa');

READLN(LITER);

WRITELN('математика');

READLN(MATEMAT);

WRITELN('русский язык');

READLN(RUSYZ);

WRITELN('НУЖДАЕТЕСЬ В ОБЩЕЖИТИИ(1-да/0-нег)?');

READLN(PRZ);

WRITELN('ОЦЕНКИ ВСТУПИТЕЛЬНЫХ ЭКЗАМЕНОВ');

WRITELN('математика');

READLN(MATEM);

WRITELN('русский язык');

READLN(RUS);

WRITE(F,A);

WRITELN('БУДЕТЕ ВВОДИТЬ ЕЩЕ?(1-да/0-нет) ');

READLN(FLAG);

END; END;

CLOSE(F);       {ЗАКРЫТИЕ ФАЙЛА}

WRITELN('ИСХОДНЫЙ ФАЙЛ');

RESET(F);        {ОТКРЫТИЕ ФАЙЛА ДЛЯ ЧТЕНИЯ}

WRITELN('|------------------------------------------------------------------------|');

WRITELN('|             |О|  ГОД  | ГОД |ОЦЕНКИ АТ-ТА| ОЦЕН ПОСТ|');

WRITELN('| Ф.И.О |Б |РОЖД|  ОК  |    Л   |   М   |   Р    |    М    |    Р      |');

WRITELN('|             |Щ|           | ШК |          |          |         |            |            |');

WRITELN('|------------------------------------------------------------------------|');

WITH A, OCEN, OCWE DO

WHILE NOT EOF(F) DO

BEGIN

READ(F,A);      {ЧТЕНИЕ ЗАПИСИ ИЗ ФАЙЛА}

WHILE LENGTH(FIO)< 13 DO

FIO:=FIO+' ';

WRITELN('|',FIO:12,'|',PRZ:3,'|',GODR:8,'|',GODO:8,'|',LITER:5,'|', MATEMAT:4,'|',RUSYZ:3,'|',MATEM:4,'|',RUS:3,'|');

END;

WRITELN('|________________________________________________|');

CLOSE(F);

WRITELN;

WRITELN('УДАЛЯЕМ ЗАПИСИ ОБ АБИТУРИЕНТАХ, ЖЕЛАЮЩИХ ЖИТЬ В ОБЩЕЖИТИИ');

WRITELN('ИЛИ ПОЛУЧИВШИХ ХОТЯ БЫ ОДНУ ТРОЙКУ');

ASSIGN(F1,'X:\USERS\GROUPS\1ASY98\MAD\st1.dat');

RESET(F);

REWRITE (f1);

WITH A,OCEN,OCWE DO

WHILE NOT EOF(F) DO BEGIN

READ(F,A);

IF (MATEM>3) AND (RUS>3) AND (PRZ=0) THEN

WRITE(F1,A);

END;

CLOSE(F1);

CLOSE(F);

ERASE(F);

RENAME(F1,'X:\USERS\GROUPS\1ASY98\MAD\st.dat');

RESET(F);

WRITELN('|------------------------------------------------------------------------|');

WRITELN('|             |О|  ГОД  | ГОД |ОЦЕНКИ АТ-ТА| ОЦЕН ПОСТ|');

WRITELN('| Ф.И.О |Б |РОЖД|  ОК  |    Л   |   М   |   Р    |    М    |    Р      |');

WRITELN('|             |Щ|           | ШК |          |          |         |            |            |');

WRITELN('|------------------------------------------------------------------------|');

WITH A, OCEN, OCWE DO

WHILE NOT EOF(F) DO

BEGIN

READ(F,A);      {ЧТЕНИЕ ЗАПИСИ ИЗ ФАЙЛА}

WHILE LENGTH(FIO)< 13 DO

FIO:=FIO+' ';

WRITELN('|',FIO:12,'|',PRZ:3,'|',GODR:8,'|',GODO:8,'|',LITER:5,'|', MATEMAT:4,'|',RUSYZ:3,'|',MATEM:4,'|',RUS:3,'|');

END;

WRITELN('|________________________________________________|');

CLOSE(F);

WHILE NOT KEYPRESSED DO begin END; END.

PROGRAM FA2;

USES CRT;

TYPE

ZAP=RECORD

FIO:STRING[14];

GODR:INTEGER;

GODO: INTEGER;

OCEN:RECORD

LITER, MATEMAT, RUSYZ:WORD;

END;

PRZ:INTEGER;

OCWE:RECORD

MATEM,RUS:WORD;

END;END;

VAR FLAG:WORD;

A:ZAP;

F,F1:FILE OF ZAP;

P: INTEGER;

BEGIN

CLRSCR;

ASSIGN(F,'X:\USERS\GROUPS\1ASY98\MAD\st.dat');

WRITELN('БУДETE ДОБАВЛЯТЬ ЗАПИСИ? (1-ДА,0-НЕТ)');

READLN(P);

IF P=1 THEN BEGIN

RESET(F);

WITH A,OCEN,OCWE DO BEGIN

REPEAT

SEEK(F,FILESIZE(F));

WRITELN('ВВЕДИТЕ ФАМИЛИЮ СТУДЕНТА');

READLN(FIO);

WRITELN('ВВЕДИТЕ ГOД РОЖДЕНИЯ');

READLN(GODR);

WRITELN('ВВЕДИТЕ ГОД ОКОНЧАНИЯ ШКОЛЫ');

READLN(GODO);

WRITELN('ВВЕДИТЕ ОЦЕНКИ В АТТЕСТАТЕ');

WRITELN(' литературa');

READLN(LITER);

WRITELN('математика');

READLN(MATEMAT);

WRITELN('русский язык');

READLN(RUSYZ);

WRITELN('НУЖДАЕТЕСЬ В ОБЩЕЖИТИИ(1-да/0-нег)?');

READLN(PRZ);

WRITELN('ВВЕДИТЕ ОЦЕНКИ ВСТУПИТЕЛЬНЫХ ЭКЗАМЕНОВ');

WRITELN('математика');

READLN(MATEM);

WRITELN('русский язык');

READLN(RUS);

WRITE(F,A);

WRITELN('БУДЕТЕ ВВОДИТЬ ЕЩЕ?(1-да/0-нет) ');

READLN(FLAG);

UNTIL FLAG=0

END; END;

CLOSE(F);   {ЗАКРЫТИЕ ФАЙЛА}

WRITELN('ДОБАВЛЯЕМ ЗАПИСИ');

WRITELN('|------------------------------------------------------------------------|');

WRITELN('|             |О|  ГОД  | ГОД |ОЦЕНКИ АТ-ТА| ОЦЕН ПОСТ|');

WRITELN('| Ф.И.О |Б |РОЖД|  ОК  |    Л   |   М   |   Р    |    М    |    Р      |');

WRITELN('|             |Щ|           | ШК |          |          |         |            |            |');

WRITELN('|------------------------------------------------------------------------|');

ASSIGN(F,'X:\USERS\GROUPS\1ASY98\MAD\st.dat');

RESET(F);

WITH A, OCEN, OCWE DO BEGIN

WHILE NOT EOF(F) DO BEGIN

READ(F,A); {ЧТЕНИЕ ЗАПИСИ ИЗ ФАЙЛА} WRITELN('|',FIO:12,'|',PRZ:3,'|',GODR:8,'|',GODO:8,'|',LITER:5,'|', MATEMAT:4,'|',RUSYZ:3,

'|',MATEM:4,'|',RUS:3,'|');

END; END;

WRITELN('|________________________________________________|');

CLOSE(F);

WRITELN('CПИCOK АБИТУЕНТОВ СДАВШИХ ЭКЗАМЕН НА 4 И 5');

ASSIGN(F1,'X:\USERS\GROUPS\1ASY98\MAD\st1.dat');

RESET(F);

REWRITE(F1);

WITH A,OCEN, OCWE DO

WHILE NOT EOF(F) DO BEGIN

READ(F,A);

IF (MATEM>3) AND (RUS>3) THEN

WRITE(F1,A); {ДАННЫЕ ЗАПИСЫВАЮТСЯ В ДРУГОЙ ФАЙЛ}

END;

CLOSE(F1);

CLOSE(F);

ERASE(F);

RENAME(F1,'X:\USERS\GROUPS\1ASY98\MAD\st.dat');

RESET(F);

WRITELN('|------------------------------------------------------------------------|');

WRITELN('|             |О|  ГОД  | ГОД |ОЦЕНКИ АТ-ТА| ОЦЕН ПОСТ|');

WRITELN('| Ф.И.О |Б |РОЖД|  ОК  |    Л   |   М   |   Р    |    М    |    Р      |');

WRITELN('|             |Щ|           | ШК |          |          |         |            |            |');

WRITELN('|------------------------------------------------------------------------|');

WITH A, OCEN, OCWE DO

WHILE NOT EOF(F) DO

BEGIN

READ(F,A);      {ЧТЕНИЕ ЗАПИСИ ИЗ ФАЙЛА}

WHILE LENGTH(FIO)< 13 DO

FIO:=FIO+' ';

WRITELN('|',FIO:12,'|',PRZ:3,'|',GODR:8,'|',GODO:8,'|',LITER:5,'|', MATEMAT:4,'|',RUSYZ:3,'|',MATEM:4,'|',RUS:3,'|');

END;

WRITELN('|________________________________________________|');

CLOSE(F);

WHILE NOT KEYPRESSED DO BEGIN END; END.

Варианты задания

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

  1. Анкетные данные абитуриентов - получивших одни пятёрки.
  2. Анкетные данные абитуриентов, получивших 4 и 5.
  3. Анкетные данные абитуриентов, получивших одну оценку 3 за всё время экзаменов.
  4. Анкетные данные абитуриентов, получивших за последний экзамен оценку 2,
  5. Анкетные данные абитуриентов, получивших за первый экзамен оценку 5.
  6. Анкетные данные абитуриентов, получивших за все экзамены одну оценку 4.
  7. Список абитуриентов, фамилии которых начинаются с буквы А, и их оценки за экзамены.
  8. Список абитуриентов, фамилии которых начинаются с Б, и их даты рождения.
  9. Оценки в последний экзамен абитуриентов, фамилии которых начинаются с буквы В и Г.
  10. Фамилии и даты рождения абитуриентов не получивших ни одной оценки 3 за все экзамены
  11. Упорядочить список абитуриентов но среднему баллу и распечатать его.
  12. Упорядочить список абитуриентов по среднему баллу аттестатов и распечатать его.
  13. Упорядочить список абитуриентов по среднему баллу первого экзамена и распечатать его.
  14. Вычислить средний балл группы и распечатать список абитуриентов, имеющих средний балл выше среднего балла группы.
  15. Вычислить средник балл группы и распечатать список абитуриентов, имеющих средний балл ниже среднего балла группы.
  16. Вычислить средний балл группы и распечатать список абитуриентов, имеющих средний балл равный среднему баллу группы.
  17. Вычислить средний балл: группы за последний экзамен и распечатать список абитуриентов, имеющих средний балл, равный среднему баллу группы.
  18. Упорядочить список абитуриентов по году рождения распечатать его.
  19. Распечатать список абитуриента, упорядоченный по алфавиту и среднему баллу.
  20. Распечатать список абитуриентов, упорядоченный по году окончания школы и среднем баллу.
  21. Распечатать список абитуриентов получивших одни пятерки, упорядоченный по году рождения.
  22. Распечатать список абитуриентов, упорядоченный по дате рождения и нуждающихся в общежитии.
  23. Распечатать список абитуриентов, нуждающихся в общежитии и получивших на экзаменах четвёрки.
  24. Список абитуриентов отличников и одного возраста
  25. Список абитуриентов одного года рождения. Год ввести с клавиатуры.
  26. Список абитуриентов с фамилиями начинающихся на буквы ’П’,’Л’ и нуждающихся в общежитии.
  27. Список абитуриентов, получивших за первый экзамен 3 и нуждающихся в общежитии.
  28. Список абитуриентов, имеющим отличные оценки по экзамена и одного года рождения (год вводится с клавиатуры).
  29. Список абитуриентов, у которых фамилии начинаются на буквы ‘Г’ и ‘Д’.
  30. Список абитуриентов, у которых в аттестате только 4, 5 и имеющие всего одну 3 за последний экзамен


СПИСОК ЛИТЕРАТУРЫ

Литература основная:

  1. Основы программирования: Учебник для сред. проф. образования / И.Г.Семакин, А.П. Шестаков. – 2-е изд., стер. – М.: Издательский центр «Академия», 2012. – 432 с.
  2. Голицына О.Л., Попов И.И. Основы алгоритмизации и программирования: учеб. пособие. – 3-е изд., испр. и доп. – М.: ФОРУМ, 2013. – 432 с.

Литература дополнительная:

  1. Канцедал С.А. Алгоритмизация и программирование: учебное пособие. – М.: ИД «ФОРУМ»: ИНФРА-М, 2012. – 352 с.
  2. Голицына О.Л., Партыка Т.Л., Попов И.И. Языки программирования: учеб. пособие. – М.: ФОРУМ: ИНФРА-М, 2013. – 400 с.


По теме: методические разработки, презентации и конспекты

Методические указания по выполнению самостоятельной работы по дисциплине "Основы системного анализа" для студентов по специальности 080504"Госуарственное и муниципальное управление"

Основной целью преподавания и изучения дисциплины «Основы системного анализа» является формирование у студентов системности мышления.Сущность системного мышления должна реализоваться в том, что ...

Методические указания по выполнению самостоятельной работы по дисциплине Основы программирования

МУ по СР для студентов 1 курса в рамках учебной дисциплины Основы программирования  часть 1...

Методические указания для выполнения самостоятельной работы по дисциплине «Основы экономики» для студентов очной формы обучения специальности среднего профессионального образования 13.02.02 «Теплоснабжение и теплотехническое оборудование»

Методические указания для выполнения самостоятельной работы составлены в соответствии с программой по учебной дисциплине "Основы экономики" для специальности  СПО 13.02.02 "Теплоснабжение и тепло...

Методические указания по выполнению самостоятельной работы по дисциплине "Основы электротехники"

В материале приведены задания для самостоятельной работы с методическими указаниями по выполнению по дисциплине "Основы электротехники" для профессии "Электромеханик по торговому и холдильному оборудо...

Методические указания по выполнению самостоятельной работы учебной дисциплины ОП.03 Основы дистанционного зондирования и фотограмметрия для специальности 21.02.08 Прикладная геодезия

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

Методические указания по выполнению самостоятельных работ по предмету "Основы геодезии"

В МУ ВСР даны рекомендации по выволнению самостоятельных работ, входящих в учебный план при изучении предмета "Основы геодезии"...