- •Примеры вопросов письменного экзамена по курсу «Информатика» 2-й семестр.
- •Обработка файлов - типизированных и текстовых.
- •Данные типа указатель.
- •Методы разработки алгоритмов.
- •Вопрос 2.
- •Вопрос 3б. Метод конечных состояний.
- •Вопрос 1 «Обработка файлов», совмещенный с ««задачей на алгоритмизацию».
Самитов Р.К.
Примеры вопросов письменного экзамена по курсу «Информатика» 2-й семестр.
Темы курса, вынесенные на экзамен:
Обработка файлов - типизированных и текстовых.
Данные типа указатель - определение, описание и манипулирование.
Методы разработки алгоритмов - структурных диаграмм (для текстов и файлов), конечных состояний, стековые алгоритмы.
Кроме того, в задание входит задача на алгоритмизацию и аккуратную реализацию алгоритма.
Обработка файлов - типизированных и текстовых.
Типизированный файл записей хранит данные о плане выпуска деталей в цехах предприятия, один компонент содержит сведения об одном цехе: наименование цеха (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();
}