Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Titulnik-template.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
27.52 Кб
Скачать

Санкт-Петербургский Государственный Политехнический Университет

Факультет технической кибернетики

Кафедра информационных и управляющих систем

Отчет по курсовой работе

по дисциплине «Программирование»

Вариант 13.

Выполнил студент группы 1084/24

Кочубей И.С.

Преподаватель: Вишневская Т.А.

Санкт Петербург

2012

СОДЕРЖАНИЕ

ЗАДАНИЕ К КУРСОВОЙ РАБОТЕ 3

ОПИСАНИЕ ВХОДНЫХ ДАННЫХ 4

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ЗАДАЧИ 4

Текст программы для задания 1.1 4

Текст программы для задания 1.2 5

Текст программы для задания 1.3 6

Текст программы для задания 1.4 8

Текст программы для задания 1.5 9

Текст программы для задания 1.6 11

РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ 12

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

ЗАДАНИЕ К КУРСОВОЙ РАБОТЕ

Условия выполнения задания:

1.Все исходные данные вводятся из входного текстового файла.

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

3.Задание выполняется в виде 6 различных программ , и только первая программа выполняется без процедур.

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

Таким образом эти 6 вариантов одного и того же задания предстоит выполнить с использованием:

1.Двумерных символьных массивов, текстовых файлов и без процедур;

2.С массивами STRING, процедурами и текстовыми файлами;

3.С массивами RECORD, процедурами, текстовыми и типизированными файлами и процедурами.

Типизированный файл формируется в этой же программе из текстового , а затем из него происходит чтение .

4.С модулями (варианты 2или 3 переделываются на модульный);

5.С однонаправленными линейными списками (каждая строка исходного текстового файла рассматривается как элемент списка),

процедурами и текстовыми файлами;

6.С рекурсией (любой из вариантов 2-4 переделывается на рекурсивный, поскольку везде в них есть циклы ,

которые можно всегда выполнить как рекурсивные процедуры).

Вариант:13

Дан список группы в 10 человек в виде

ФАМИЛИЯ ИМЯ ОТЧЕСТВО

20 символов 10 симв. 15 симв.

Данные в одной строке отделяются друг от друга пробелами.

Определить число встречающихся имен и напечатать в виде:

Сергей - 2

Петр - 1

и т.д.

ОПИСАНИЕ ВХОДНЫХ ДАННЫХ

file1:

pupkin vasilii ignatovich

pupkin vasilii ignatovich

pupkin vasilii ignatovich

pupkin basilii ignatovich

pupkin gasilii ignatovich

pupkin vasilii ignatovich

pupkin vasilii ignatovich

pupkin vasilii ignatovich

pupkin basilii ignatovich

pupkin vasilii ignatovich

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ЗАДАЧИ

Текст программы для задания 1.1

program zadanie1_v2_var13;

uses crt;

type

spisok_input=array[1..10,1..41] of char;

var

list:spisok_input;

i,j,k,c:integer;

file_one:text;

buffer:string[48];

procedure readf(var list1:spisok_input);

begin

assign(file_one,'lab1-6/file1.txt');

reset(file_one);

for i:=1 to 10 do

begin

for j:=1 to 41 do

begin

read(file_one,list1[i,j]);

end;

readln(file_one);

end;

close(file_one);

end;

procedure show(var list1:spisok_input);

var i,j:integer;

begin

for i:=1 to 10 do begin

for j:=22 to 31 do

write(list1[i,j]);

writeln('');

end;

writeln;

end;

procedure Sravn(var list1:spisok_input);

var l:integer;

begin

assign(file_one,'file2.txt');

rewrite(file_one);

for i:=1 to 10 do begin

if(list1[i,1]<>'*') then

begin

c:=1;

for k:=i+1 to 10 do

begin

l:=22;

while((list1[k,l]=list1[i,l]) and (l<=31)) do l:=l+1;

if (l>=32) then

begin

c:=c+1;

list1[k,1]:='*';

end;

end;

for l:=22 to 31 do

write(file_one,list1[i,l]);

writeln(file_one,' ',c);

for l:=22 to 31 do

write(list1[i,l]);

writeln(' ',c);

end;

end;

close(file_one);

end;

begin

clrscr;

readf(list);

show(list);

Sravn(list);

readkey;

end.

Текст программы для задания 1.2

program zadanie1_v2_var13;

uses crt;

type

spisok_input=array[1..10] of string;

var

list:spisok_input;

i,j,k,c:integer;

file_one:text;

buffer:string[48];

procedure readf(var list1:spisok_input);

begin

assign(file_one,'lab1-6\file1.txt');

reset(file_one);

for i:=1 to 10 do

begin

readln(file_one,list1[i]);

end;

close(file_one);

end;

procedure show(var list1:spisok_input);

begin

for i:=1 to 10 do

writeln(list1[i]);

writeln('');

writeln;

end;

procedure Sravn(var list1:spisok_input);

begin

assign(file_one,'file2.txt');

rewrite(file_one);

for i:=1 to 10 do

if(list1[i]<>'*') then

begin

c:=1;

for k:=i+1 to 10 do

begin

while(list1[k]=list1[i]) do

begin

c:=c+1;

list1[k]:='*';

end;

end;

write(file_one,list1[i]);

writeln(file_one,' ',c);

writeln(list1[i],' ',c);

end;

close(file_one);

end;

begin

clrscr;

readf(list);

show(list);

Sravn(list);

readkey;

end.

Текст программы для задания 1.3

program zadanie1_v3_var13;

uses crt;

type

spi=record

fam:string[20];

p1:string[1];

name:string[10];

p2:string[1];

ot4:string[15];

end;

spisok_input=array[1..10] of spi;

var

list:spisok_input;

i,j,k,c:integer;

file_one,file_two:text;

buffer:string[48];

procedure readf(var list1:spisok_input);

begin

assign(file_one,'lab1-6/file1.txt');

reset(file_one);

assign(file_two,'lab1-6/filetwo.txt');

rewrite(file_two);

for i:=1 to 10 do

begin

readln(file_one,list1[i].fam,list1[i].p1,list1[i].name);

writeln(file_two,list1[i].name);

end;

close(file_one);

close(file_two);

end;

procedure show(var list1:spisok_input);

begin

for i:=1 to 10 do

writeln(list1[i].name);

writeln('');

writeln;

end;

procedure Sravn(var list1:spisok_input);

begin

assign(file_two,'lab1-6/file3.txt');

rewrite(file_two);

for i:=1 to 10 do

if(list1[i].name<>'*') then

begin

c:=1;

for k:=i+1 to 10 do

begin

while(list1[k].name=list1[i].name) do

begin

c:=c+1;

list1[k].name:='*';

end;

end;

write(file_two,list1[i].name);

writeln(file_two,' ',c);

writeln(list1[i].name,' ',c);

end;

close(file_two);

end;

begin

clrscr;

readf(list);

show(list);

Sravn(list);

readkey;

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]