Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2-y_semestr_Primery_voprosov_pismennogo_ekza.doc
Скачиваний:
4
Добавлен:
13.08.2019
Размер:
119.81 Кб
Скачать

Самитов Р.К.

Примеры вопросов письменного экзамена по курсу «Информатика» 2-й семестр.

Темы курса, вынесенные на экзамен:

  • Обработка файлов - типизированных и текстовых.

  • Данные типа указатель - определение, описание и манипулирование.

  • Методы разработки алгоритмов - структурных диаграмм (для текстов и файлов), конечных состояний, стековые алгоритмы.

Кроме того, в задание входит задача на алгоритмизацию и аккуратную реализацию алгоритма.

  1. Обработка файлов - типизированных и текстовых.

Типизированный файл записей хранит данные о плане выпуска деталей в цехах предприятия, один компонент содержит сведения об одном цехе: наименование цеха (15 символов), данные о 50-ти деталях: о каждой детали - наименование (20 символов), вес одной детали (вещественное число), план выпуска на каждый из 12-ти месяцев (12 целых чисел).

Сформировать текстовый файл: одна строка содержит сведения об одном цехе: наименование цеха, общий вес плана выпуска по этому цеху на каждый из 12-ти месяцев (12 вещественных чисел), «ВЕС ВСЕГО» - сумма весов по строке.

15 позиций.

10п.

10п.

10п.

20п.

НАИМЕНОВАНИЕ

1

2

...

12

ВЕС ВСЕГО

...

...

...

...

...

...

ИТОГО

 вес

 вес

 вес

 вес

«Общий вес плана выпуска (по месяцам)» выводить в формате - Х...Х.ХХ, «ВЕС ВСЕГО» и «(суммарный по столбцу)  вес» - в форме с плавающей точкой.

Ответ – Pascal:

PROGRAM pp; TYPE tt= RECORD nc:STRING[15]; d: ARRAY[1..50] OF RECORD

nd:STRING[20]; v:REAL; p: ARRAY[1..12] OF INTEGER END END;

VAR vh: FILE OF tt; vih:TEXTFILE; x:tt; y: ARRAY[1..13] OF REAL; i,j:INTEGER;

s,ss:REAL; BEGIN RESET(vh); REWRITE(vih); FOR j:=1 TO 13 DO y[j]:=0;

WHILE NOT EOF(vh) DO BEGIN READ(vh,x); WRITE(vih,x.nc,’’:15-lenght(x.nc));

ss:=0; FOR j:=1 TO 12 DO BEGIN s:=0; FOR i:=1 TO 50 DO

s:=s+x.d[i].v*x.d[i].p[j]; WRITE(vih,s:11:2); ss:=ss+s; y[j]:=y[j]+s END;

WRITELN(vih,ss:21); y[13]:=y[13]+ss END; WRITE(vih,’ИТОГО’:15);

FOR j:=1 TO 12 DO WRITE(vih,y[j]:11); WRITELN(vih,y[13]:21) END.

Ответ – C/C++:

main(){ typedef struct{char nc[15]; struct{char nd[20]; double v;

int p[12];}d[50];}tt;

ifstream vh; ofstream vih; tt x; double y[13],s,ss; int i,j;

vh.open("vh.BIN",ios::binary); vih.open("vih.txt"); for(j=0;j<13;j++) y[j]=0;

while(vh.peek()!=EOF){ vh.read((char *)&x,sizeof(tt));

vih<<setiosflags(ios::left)<<setw(15)<<x.nc<<resetiosflags(ios::left);

ss=0; for(j=0;j<12;j++){ s=0; for(i=0;i<50;i++) s=s+x.d[i].v*x.d[i].p[j];

vih<<setiosflags(ios::fixed)<<setw(11)<<setprecision(2)<<s

<<resetiosflags(ios::fixed); ss=ss+s; y[j]=y[j]+s;}

vih<<setiosflags(ios::scientific)<<setw(21)<<setprecision(12)<<ss

<<resetiosflags(ios::scientific)<<'\n'; y[12]=y[12]+ss; }

vih<<setw(15)<<"ИТОГО"; for(j=0;j<12;j++)

vih<<setiosflags(ios::scientific)<<setw(11)<<setprecision(2)<<y[j];

vih<<setw(21)<<setprecision(12)<<y[12]<<resetiosflags(ios::scientific)<<'\n';

vih.close();

}