Дан массив 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!