Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Контрольная работа. По курсу “методы программирования и информатика”





по курсу “Методы программирования и информатика”

для специальности 1-31 03 01 – математика

(научно-педагогическая деятельность)

3 курс 6 семестр заочный факультет

 

1. Дана строка длиной не более 255 символов. Выполнить обработку текста.

Формат вывода:

- исходное значение переменной типа STRING с соответствующим комментарием;

- краткая формулировка поставленной задачи;

- результирующее значение переменной типа STRING с соответствующим комментарием;

 

  Выдать на экран слово минимальное по длине столько раз, сколько встречается слово максимальное по длине. В противном случае текст оставить без изменения.  

2. Сформировать структуру данных типа массив записей. Вывод результатов обработки элементов массива записей осуществить в виде таблицы.

  СВЕДЕНИЯ О ЗНАНИИ ИНОСТРАННЫХ ЯЗЫКОВ структура записи: Ф.И.О студента; факультет; группа; английский (0-10 баллов); французский (0-10 баллов); немецкий (0-10 баллов). Выдать список студентов, знающих один из иностранных языков в совершенстве.  

 

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

 

 

 

Текст программы 1

 

program pr1;

uses CRT; {вызов модуля}

var

s,max_sl,min_sl:string; {исходная строка, максимальное слово, минимальное слово}

kol,n:integer; {кол-во максимальных слов, кол-во символов}

i,j,nach_sl:integer; {параметр цикла, начало слова}

max,min:integer; {количество букв}

sl:string; {для выделения слов}

kol1,kol2:integer; {для проверки количества max и min слов}

begin

clrscr; {очистка экрана}

writeln('ПОСТАНОВКА ЗАДАЧИ:');

writeln;

writeln('Выдать на экран слово минимальной длины столько раз, сколько');

writeln('встречается слово максимальной длины. В противном случае текст не изменять.');

writeln;

write('Введите строку:');readln(s);

writeln('Исходная строка:',s);

{удаление лишних пробелов}

for j:=1 to length(s) do

for i:=2 to length(s) do

if (s[i]=' ')and(s[i-1]=' ') then delete(s,i-1,1);

if s[1]=' ' then delete(s,1,1);

{вставка в конец предложения точки, если ее не поставили}

if s[length(s)]<>'.' then s:=s+'.';

{поиск минимального и максимального слов}

nach_sl:=1;

n:=length(s);

max:=0;

min:=255;

for i:=1 to n do

if (s[i]=' ')or(s[i]='.') then

begin

{максимальное слово}

if (i-nach_sl>max) then

begin

max:=i-nach_sl;

max_sl:=copy(s,nach_sl,max)

end;

{минимальное слово}

if (i-nach_sl<min) then

begin

min:=i-nach_sl;

min_sl:=copy(s,nach_sl,min)

end;

nach_sl:=i+1;

end;

{подсчет количество максимального слова}

nach_sl:=1;

n:=length(s);

kol:=0;

kol1:=1;

kol2:=1;

for i:=1 to n do

if (s[i]=' ')or(s[i]='.') then

begin

sl:=copy(s,nach_sl,i-nach_sl);

if (i-nach_sl=max)and(sl<>max_sl) then inc(kol1);

if (i-nach_sl=min)and(sl<>min_sl) then inc(kol2);

if max_sl=sl then inc(kol);

nach_sl:=i+1;

end;

 

if (kol1=1)and(kol2=1) then

begin

writeln('Максимальное слово:',max_sl);

writeln('Минимальное слово:',min_sl);

writeln;

writeln('Выполнение задачи:');

for i:=1 to kol do

writeln(i,') слово:',min_sl)

end

else

begin

writeln('Текст остался без изменений, так как в тексте есть РАЗНЫЕ минимальные и/или');

writeln('максимальные слова!!!');

end;

readln;

end.

 

Текст программы 2

program pr_2;

uses CRT;

type

{запись}

zapis=record

fio:string[24]; {ФИО}

fak:string[13]; {факультет}

grup:string[6]; {группа}

ang:integer; {англ}

fran:integer; {франц}

nem:integer; {немец}

end;

var

a:array [1..20] of zapis; {массив записей}

n,i:integer; {количество записей и параметр цикла}

p:boolean; {для определения количества ввода}

 

{процедура ввода данных}

procedure vvod;

begin

p:=false; {чтобы можно ввести только один раз}

write('Введите количество записей:');readln(n);

for i:=1 to n do

with a[i] do

begin

write('Введите ФИО:');readln(fio);

write('Введите факультет:'); readln(fak);

write('Введите группу:');readln(grup);

write('Введите оценку по английскому языку(1-10):');readln(ang);

write('Введите оценку по французкому языку(1-10):'); readln(fran);

write('Введите оценку по немецкому языку(1-10):'); readln(nem);

end;

end;

 

{процедура просмотра всех записей}

procedure pros;

begin

clrscr;{очистка}

{вывод шапки таблицы}

writeln(' БАЗА ДАННЫХ ВСЕХ СТУДЕНТОВ ');

writeln('╔═══╦════════════════════════╦═════════════╦══════╦════════╦════════╦═══════╗');

writeln('║НОМ║ ФИО ║ ФАКУЛЬТЕТ ║ГРУППА║АНГЛ. ЯЗ║ФРАН. ЯЗ║НЕМ. ЯЗ║'); writeln('╠═══╬════════════════════════╬═════════════╬══════╬════════╬════════╬═══════╣');

for i:=1 to n do

with a[i] do

writeln('║',i:3,'║',fio:24,'║',fak:13,'║',grup:6,'║',ang:8,'║',fran:8,'║',nem:7,'║');

writeln('╚═══╩════════════════════════╩═════════════╩══════╩════════╩════════╩═══════╝');

writeln('Для продолжения нажмите "ENTER"...');

readln;

end;

procedure obr;

var

j:integer; {номера записей}

begin

clrscr;

writeln(' БАЗА ДАННЫХ ТЕХ СТУДЕНТОВ, КОТОРЫЕ ЗНАЮТ ХОТЯ БЫ ОДИН ЯЗЫК НА 10 ');

writeln('╔═══╦════════════════════════╦═════════════╦══════╦════════╦════════╦═══════╗');

writeln('║НОМ║ ФИО ║ ФАКУЛЬТЕТ ║ГРУППА║АНГЛ. ЯЗ║ФРАН. ЯЗ║НЕМ. ЯЗ║'); writeln('╠═══╬════════════════════════╬═════════════╬══════╬════════╬════════╬═══════╣');

j:=0;

for i:=1 to n do

with a[i] do

{обработка}

if (ang=10)or(fran=10)or(nem=10) then

begin

inc(j);

writeln('║',j:3,'║',fio:24,'║',fak:13,'║',grup:6,'║',ang:8,'║',fran:8,'║',nem:7,'║');

end;

writeln('╚═══╩════════════════════════╩═════════════╩══════╩════════╩════════╩═══════╝');

writeln('Для продолжения нажмите "ENTER"...');

readln;

end;

{процедура меню}

procedure menu;

var

q:integer;

begin

while true do

begin

clrscr; {очистка}

{вывод меню}

writeln('Меню программы');

writeln('1- Ввод');

writeln('2- Просмотр');

writeln('3- Обработка');

writeln('4- Выход');

readln(q);

case q of

1:if p=true then vvod else begin writeln('Данные уже введены!!!');readln end;

2:pros;

3:obr;

4:exit;

end;

end;

end;

{основная программа}

begin

p:=true;

menu;

writeln('Работа с программой завершена!!! Нажмите "ENTER"...');

readln;

end.

 

Текст программы 3

program pr_3;

uses CRT;

type

{запись}

zapis=record

fio:string[24]; {ФИО}

fak:string[13]; {факультет}

grup:string[6]; {группа}

ang:integer; {англ}

fran:integer; {франц}

nem:integer; {немец}

end;

var

a:array [1..20] of zapis; {массив записей}

n,i:integer; {количество записей и параметр цикла}

filename:string; {имя файла}

f:file of zapis; {тип файл}

zap:zapis; {запись}

 

{процедура создания файла и ввода начальной информации}

procedure sozd;

begin

clrscr;

{имя файла}

writeln('Введите имя файла:'); readln(filename);

assign(f,filename); {присвоение имя}

rewrite(f);{создание файла}

{ввод исходных данных}

write('Введите количество записей:');readln(n);

for i:=1 to n do

with zap do

begin

write('Введите ФИО:');readln(fio);

write('Введите факультет:'); readln(fak);

write('Введите группу:');readln(grup);

write('Введите оценку по английскому языку(1-10):');readln(ang);

write('Введите оценку по французкому языку(1-10):'); readln(fran);

write('Введите оценку по немецкому языку(1-10):'); readln(nem);

write(f,zap);{запись в файл}

end;

close(f); {закрыть}

end;

 

 

{процедура вставки данных}

procedure korr;

begin

writeln('Введите имя файла:');readln(filename);

assign(f,filename);

reset(f);

write('Сколько записей добавить:');readln(n);

seek(f,filesize(f));

for i:=1 to n do

with zap do

begin

write('Введите ФИО:');readln(fio);

write('Введите факультет:'); readln(fak);

write('Введите группу:');readln(grup);

write('Введите оценку по английскому языку(1-10):');readln(ang);

write('Введите оценку по французкому языку(1-10):'); readln(fran);

write('Введите оценку по немецкому языку(1-10):'); readln(nem);

write(f,zap);

end;

close(f);

end;

 

{процедура просмотра всех записей}

procedure pros;

begin

writeln('Введите имя файла:');readln(filename);

assign(f,filename);

clrscr;{очистка}

{вывод шапки таблицы}

writeln('Информация считана из файла:',filename);

writeln(' БАЗА ДАННЫХ ВСЕХ СТУДЕНТОВ ');

writeln('╔═══╦════════════════════════╦═════════════╦══════╦════════╦════════╦═══════╗');writeln('║НОМ║ ФИО ║ ФАКУЛЬТЕТ ║ГРУППА║АНГЛ. ЯЗ║ФРАН. ЯЗ║НЕМ. ЯЗ║'); writeln('╠═══╬════════════════════════╬═════════════╬══════╬════════╬════════╬═══════╣');

reset(f);

for i:=1 to filesize(f) do

with zap do

begin

read(f,zap);

writeln('║',i:3,'║',fio:24,'║',fak:13,'║',grup:6,'║',ang:8,'║',fran:8,'║',nem:7,'║');

end;

writeln('╚═══╩════════════════════════╩═════════════╩══════╩════════╩════════╩═══════╝');

close(f);

writeln('Для продолжения нажмите "ENTER"...');

readln;

end;

 

procedure obr;

var

j:integer; {номера записей}

begin

clrscr;

writeln('Введите имя файла:');readln(filename);

assign(f,filename);

reset(f);

clrscr;

writeln(' БАЗА ДАННЫХ ТЕХ СТУДЕНТОВ, КОТОРЫЕ ЗНАЮТ ХОТЯ БЫ ОДИН ЯЗЫК НА 10 ');

writeln('╔═══╦════════════════════════╦═════════════╦══════╦════════╦════════╦═══════╗');

writeln('║НОМ║ ФИО ║ ФАКУЛЬТЕТ ║ГРУППА║АНГЛ. ЯЗ║ФРАН. ЯЗ║НЕМ. ЯЗ║'); writeln('╠═══╬════════════════════════╬═════════════╬══════╬════════╬════════╬═══════╣');

j:=0;

for i:=1 to filesize(f) do

with zap do

{обработка}

begin

read(f,zap);

if (ang=10)or(fran=10)or(nem=10) then

begin

inc(j);

writeln('║',j:3,'║',fio:24,'║',fak:13,'║',grup:6,'║',ang:8,'║',fran:8,'║',nem:7,'║');

end;

end;

close(f);

writeln('╚═══╩════════════════════════╩═════════════╩══════╩════════╩════════╩═══════╝');

writeln('Для продолжения нажмите "ENTER"...');

readln;

end;

 

{процедура меню}

procedure menu;

var

q:integer;

begin

while true do

begin

clrscr; {очистка}

{вывод меню}

writeln('Меню программы');

writeln('1 - Создание файла');

writeln('2 - Последовательная распечатка(Просмотр)');

writeln('3 - Обработка');

writeln('4 - Корректировка (расширение) файла новыми записями');

writeln('5 - Выход');

readln(q);

case q of

1:sozd;

2:pros;

3:obr;

4:korr;

5:exit;

end;

end;

end;

 

 

{основная программа}

begin

menu;

writeln('Работа с программой завершена!!! Нажмите "ENTER"...');

readln;

end.


Date: 2015-07-27; view: 432; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию