Дан массив 7 х 6. Сменить знак элементам тех строк, где суммы элементов равны нулю
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
Высшего профессионального образования
«Поволжский государственный университет сервиса»
(ФГБОУ ВПО «ПВГУС»)
Кафедра "Информационный и электронный сервис"
Курсовая работа
защищена с оценкой _______________
Руководитель: к.т.н., Лебедев Р. В.
“____”____________________2018 г.
КУРСОВАЯ РАБОТА
по дисциплине “Специальные разделы информатики”
Вариант № 6_______________________
Выполнил студент группы: БИоз-17
Ф.И.О. Введенский Андрей Владимирович
Тольятти, 2018 г.
МИНОБРНАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
|
|
УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
"ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ сервиса"
(фгбоу вПо "пвгус")
Кафедра "Информационный и электронный сервис"
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
Допущен к защите Защищен
Руководитель проекта с оценкой ____________
_________ /_______________/ _________ /________________/
"____"_____________ 2018 г. "____"_____________ 2018 г.
Содержание
Введение. 4
1. Задание №1. 5
1.1 Формулировка задания. 5
1.2 Блок-схема. 5
1.3 Листинг программы.. 6
1.4 Контрольный пример. 7
2. Задание №2. 10
2.1 Формулировка задания. 10
2.2 Блок-схема. 11
2.3 Листинг программы.. 12
2.4 Контрольный пример. 12
Заключение. 14
Список литературы.. 15
Введение
Учебным планом предусмотрено выполнение курсовой работы по дисциплине “Специальные разделы информатики”. Цель работы: практическое закрепление теоретических знаний, полученных в процессе изучения курса.
В ходе выполнения курсовой работы приобретается опыт в разработке программ с четкой структуризацией, умение осуществлять постановку задачи, применять процедуры и функции из стандартных модулей при создании проекта, конструировать собственные подпрограммы, использовать данные в виде файлов.
|
|
Первая глава методического пособия содержит рекомендации по содержанию и оформлению пояснительной записки к курсовой работе. Вторая и третья главы - по выполнению разделов курсовой работы. Рассмотрены этапы разработки ПО, положения структурного (модульного) программирования, приемы работы с файловым типом данных, записями, массивами.
Задание №1
Формулировка задания
В файле типа RECORD хранится информация о поступивших в ремонт бытовых приборах: ФИО клиента, тип бытового прибора, год выпуска, страховая стоимость прибора, наименование дефекта, дата приемки в ремонт. Составить программу для получения:
· Сведений о приборах, год выпуска которых меньше заданного;
· Информации о количестве приборов одного типа.
Блок-схема
Рисунок 1.1 «основная часть программы»
Рисунок1.2 «меню»
рисунок1.3 «процедура ввода данных в файл»
рисунок 1.4 «процедура чтения данных из файла»
рисунок 1.5 «процедура вывода данных о приборах старше выбранного года»
|
|
рисунок 1.6 «процедура подсчитывающая количество предметов одного типа»
Листинг программы
program p1;
usescrt;
typeitem = record
fio: string[64]; {ФИО клиента}
kind: string[64]; {тип прибора}
defect: string[64]; {наименование дефекта}
fixday: string[64]; {дата приемки в ремонт}
year: 1..2018; {год выпуска}
cost: 1..999999; {страховая стоимость прибора}
end;
varitems: array ofitem; {массив приборов}
items_file: file ofitem; {переменная для работы с файлом данных}
g, Y, m, s, t, mode: integer;
k: string[64];
{------------менюшка---------------}
procedurenextAction;
Begin
writeln('Введите:');
writeln('1 - для ПЕРЕЗАПИСИ базы данных');
writeln('2 - для вывода ИНФОРМАЦИИ О ВСЕХ приборах');
writeln('3 - для вывода информации о КОЛИЧЕСТВЕ приборов ОДНОГО ТИПА');
writeln('4 - для вывода сведений о приборах ГОД ВЫПУСКА каторх МЕНЬШЕ заданного');
writeln('5 - для ВЫХОДА');
end;
{--------------менюшка закончилась--------------}
{-------------Процедура ввода данных в файл----------------}
procedurewriteItems;
varn: integer;{переменная кол-ва предметов(n)}
Begin
write('Сколько приборов вы хотите добавить? '); readln(n);
setlength(items, n);{устанавливаем длинну массива items}
{переписываем содержимое файла items.txt}
rewrite(items_file);
{заполняем массив данными}
fori: integer := 0 ton - 1 do begin
withitems[i] do begin
writeln('Прибор #', i + 1);
|
|
write('ФИО клиента: '); readln(fio);
write('Тип бытового прибора: '); readln(kind);
write('Год выпуска: '); readln(year);
write('Дефект: '); readln(defect);
write('Дата приема в ремонт: '); readln(fixday);
write('Стоимость ремонта: '); readln(cost);
{записываем эти данные в файл}
write(items_file, items[i]);
writeln('');
end;
end;
{заканчиваем заполнять массив}
close(items_file);{обязательно закрываем файл, по сути сохраняем изменения}
writeln('Ввод данных закончен, нажмите любую кнопку, чтобы выйти в меню');
readkey;
clrscr;
nextAction();{уходим обратно в меню}
end;
{-------------конец процедуры ввода данных в файл----------------}
{------------Процедура чтения данных из файла--------------------}
procedurereadItems;
Begin
reset(items_file);
g := 0;
setlength(items, filesize(items_file));
while noteof(items_file) do begin
read(items_file, items[g]);
writeln('Прибор #', g + 1);
writeln('ФИО клиента: ', items[g].fio);
writeln('Тип бытового прибора: ', items[g].kind);
writeln('Год выпуска: ', items[g].year);
writeln('Дефект: ', items[g].defect);
writeln('Дата приема в ремонт: ', items[g].fixday);
writeln('Стоимость ремонта: ', items[g].cost);
writeln('');
inc(g);
end;
close(items_file);{обязательно закрываем файл}
writeln('Чтение данных закончено, нажмите любую кнопку, чтобы выйти в меню');
readkey;
clrscr;
nextAction();{уходим обратно в меню}
end;
{------------Конец процедуры чтения данных из файла--------------------}
{-------процедура вывода информации о приборах, год выпуска которых меньше заданного------}
procedurereadItemsYear;
Begin
writeln('Информация о приборах старше какого года выпуска интересует?');
readln(Y);{Переменная хранит год условия}
g:=0; {счетчик массива}
t:=0; {если ни одного так и не вывелось, то так и останется 0}
reset(items_file);
{устанавливаем длину массива items размером с весь файл}
setlength(items, filesize(items_file));
{пока не закончится файл читаем из него и сравниваем каждый g-тый год
с переменной Y, если меньше, выводим на экран}
while noteof (items_file) do begin
read(items_file, items[g]);
if(items[g].year < Y) then begin
writeln('Прибор #', g + 1);
writeln('ФИО клиента: ', items[g].fio);
writeln('Тип бытового прибора: ', items[g].kind);
writeln('Год выпуска: ', items[g].year);
writeln('Дефект: ', items[g].defect);
writeln('Дата приема в ремонт: ', items[g].fixday);
writeln('Стоимость ремонта: ', items[g].cost);
writeln('');
t:=t+1;
end;
inc(g);
end;
ift = 0 then begin
writeln('нет приборов старше этого года');
end;
close(items_file);{обязательно закрываем файл}
writeln('Чтение данных закончено, нажмите любую кнопку, чтобы выйти в меню');
readkey;
clrscr;
nextAction();{уходим обратно в меню}
end;
{-----конец процедуры вывода информации о приборах, год выпуска которых меньше заданного----}
{------процедура выводящая инф-цию о кол-ве приборов одного типа-------------------}
procedurekindCounter;
Begin
writeln('количество приборов какого типа интересует?');
readln(k);{Переменная хранит тип предмета}
m:=0; {счетчик массива}
s:=0; {счетчик предметов}
reset(items_file);
{устанавливаем длину массива items размером с весь файл}
setlength(items, filesize(items_file));
{пока не закончится файл читаем из него и сравниваем каждый g-тый тип предмета
с переменной K, если равно, то s:=s+1}
while noteof (items_file) do begin
read(items_file, items[m]);
if(items[m].kind = k) then begin
s:=s+1;
inc(m);
end;
end;
{проверка того, есть ли вообще такие предметы}
ifs = 0 then begin
writeln('Нет предметов этого типа');
End
Else begin
writeln('Количество предметов типа: ', k ,' = ',s);
end;
close(items_file);{обязательно закрываем файл}
writeln('Чтение данных закончено, нажмите любую кнопку, чтобы выйти в меню');
readkey;
clrscr;
nextAction();{уходим обратно в меню}
end;
{------конец процедуры выводящей инф-цию о кол-ве приборов одного типа-------------}
Begin
assign(items_file, 'items.txt');
nextAction();
whilemode <> 5 do begin;
readln(mode);
casemode of
1: beginclrscr; writeItems(); end;
2: beginclrscr; readItems(); end;
3: beginclrscr; kindCounter(); end;
4: beginclrscr; readItemsYear(); end
end;
end;
end.
Контрольный пример
Рисунок 1.7
Рисунок 1.8
Рисунок 1.9
Рисунок 1.10
Задание №2
Формулировка задания
Дан массив 7 х 6. Сменить знак элементам тех строк, где суммы элементов равны нулю
Блок-схема
Листинг программы
program p2;
usescrt;
varn, m: integer; {переменные для длинны и ширины массива}
a: array[,] ofinteger; {сам массив}
sum: integer; {переменная, которая будет считать сумму}
Begin
writeln('программа выведет массив NxM и заменит знак у элементов тех строк, сумма которых = 0 ');
write('Укажите кол-во строк:'); readln(n);
write('Укажите кол-во столбцов:'); readln(m);
{указываем длину массива}
setlength(a, n, m);
{--------создаем и выводим массив на экран------------}
writeln('Данный массив:');
fori: integer := 0 ton - 1 do begin
sum:=0;
forj: integer := 0 tom - 1 do begin
a[i, j] := random(3)-1;
write(a[i, j]:7);
sum:= sum + a[i, j];
end;
write(' сумма = ', sum);
writeln;
end;
{-------массив создан-----------------}
writeln();
{-------работа над ранее созданным массивом--------------}
fori: integer := 0 ton - 1 do begin
sum:=0;
forj: integer := 0 tom - 1 do begin
sum:= sum + a[i, j];
end;
ifsum = 0 then{проверяем сумму, если равно = то}
begin
forj: integer := 0 tom - 1 do{заново проганяем цикл внутренний, только меняем знак элементам}
begin
TextColor(6);
a[i,j]:=a[i,j]*(-1);
write(a[i, j]:7); {и выводим их на экран}
TextColor(7);
end;
end
Else
Begin
forj: integer := 0 tom - 1 do
Begin
write(a[i, j]:7); {ничего не меняем, и срзу выводим на экран}
end;
end;
writeln();
end;{и только вот на этом end заканчивается выплнение цикла, который считает i}
readkey;
end.
Контрольный пример
Заключение
Итак, в ходе выполнения курсовой работы мне удалось убедиться, что язык Паскаль предоставляет весьма гибкие возможности в отношении используемых структур данных. Как известно, простота алгоритмов, а значит, трудоемкость их разработки и их надежность существенно зависят от того, насколько удачно будут выбраны структуры данных, используемые при решении задачи.
Алгоритмический язык Паскаль создавался для обучения. Поэтому он хорошо продуман с точки зрения эффективности (реализация самого языка) и с точки зрения получаемых в результате трансляции машинных команд.
Большое внимание в Паскале уделено также вопросу повышения надежности программ. Средства языка позволяют осуществлять достаточно полный контроль правильности использования данных различных типов и программных объектов, как на этапе трансляции программы, так и на этапе ее выполнения.
Благодаря этим своим особенностям Паскаль находит все более широкое применение не только в области обучения, но и в практической работе. Из всего вышеперечисленного становится понятным, почему Паскаль вызывает повышенный интерес и почему он все чаще выбирается в качестве базового языка при обучении программированию.
Список литературы
1. Бабушкина И.А., Бушмелева Н.А. и др. Практикум по Турбо Паскалю. М.: АБФ, 2013-384с.
2. Основы современных компьютерных технологий / под ред. Хомоненко А.Д., С-ПБ.: корона –принт, 2011-446с.
3. Зуев Е.А. Программирование на языке Turbo Pascal 6.0., 7.0., М.: Радио и связь -Веста, 2012-380с.
4. Епанешников А.М., Епанешников В.А. Программирование в среде Turbo Pascal 7.0., М.: Диалог-мифи, 2011-282 (с. 10-12).
5. Культин Н.Б. Программирование в среде TURBO PASCAL 7.0 и DELPHI. С-Пб.: BHV, 2013 – 240 с, (стр. 5-8).
6. Иванов В.В., Юдакова Г.А. Методические указания для самостоятельной работы по дисциплине Информатика для студентов спец. 2303.00 «Проектирование и сервис бытовых машин и приборов», Тольятти.: ПТИС, 2014 – 23 с.
7. Вирт Н. Алгоритмы и структуры данных.. М.: Мир, 2012. – 360 с.
8. Новичков В.С. и др. Паскаль: учебное пособие.- М.: Высшая школа, 2013 – 223 с.
Дата добавления: 2018-06-27; просмотров: 245; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!