Алгоритмизация и программирование задач в различных программных средах

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

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 16.10.2017
Размер файла 696,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образования Российской Федерации

Государственное образовательное учреждение высшего профессионального образования

ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ УПРАВЛЕНИЯ

ИНСТИТУТ ЗАОЧНОГО ОБУЧЕНИЯ

Кафедра «Компьютерных технологий»

Контрольная работа

Тема: «Алгоритмизация и программирование задач в различных программных средах»

по дисциплине: «Компьютерная подготовка»

Москва 2005 г.

1. Задания на алгоритмизацию и программирование задач на массивы

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

Рис. 1

Код программы:

Program Zadacha1;

Uses Crt; {Подключение модуля CRT}

Const

proiz: array [1..5] of string = {Массив производителей}

('"Богатырь"','"Заря"','"Октябрь"','"Жемчужина"','"Nivea"');

duhi: array [1..5,1..5] of string = {Двумерный массив духов}

(('ландыш','шарм','boos','москва','волга'), {Представленные фирмами}

('роза','ромашка','life','reno','тюльпан'),

('good','мила','праздник','свобода','край'),

('аполр','вагеом','доренк','смоп','кенвап'),

('fehd','typor','dfon','roitre','weryt'));

Var

x, y, i: Integer; {Вспомогательные счетчики используемые в циклах}

golosa: array [1..5,1..5] of byte; {Двумерный массив в котором хранятся данные}

{для каждых духов сколько людей их выбрало}

Procedure mStr(s1: String; var s2:String); {s1 - исходная строка; s2 - преобразованная строка}

{Процедура перевода больших букв в маленькие.}

var

i: Integer; {Счетчик}

c: Char; {Символ для преобразования}

begin

s2:=''; {Переменная для выходной строки обнуляется}

for i:=1 to Length(s1) do

begin

c:=s1[i];

if ((c>='A') and (c<='Z')) or ((c>='А') and (c<='П')) then

c:=chr(ord(c)+32) {В цикле проверяется очередной символ}

else if (c>='Р') and (c<='Я') then {входной строки. Если этот символ большой}

c:=chr(ord(c)+80); {то он преобразовывается в маленький}

s2:=s2+c {преобразованный символ добавляется к выходной строке}

end

end; {mStr}

Procedure Sravn (s3: String); (s3 - входная строка с одним вариантом духов)

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

var

Vern: Boolean; {Логическая переменная которая принимает значение True - если

введенный вариант верный, False - если введенный вариант отсутствует в матрице духов}

begin

Vern:= False;

For x:=1 to 5 do

For y:=1 to 5 do

If s3=duhi[x,y] Then {сравнивает вариант духов}

begin

inc(golosa[x,y]); {Если такой вариант существует то для данных духов}

Vern:=True; {увеличиваем на 1 голос (сколько за духи проголосовали)}

Break {как только был найден вариант духов, досрочно выходим}

end;

If not Vern Then WriteLn('Один или несколько из введенных вариантов не совпадает с представленными, он не будет зачтен.');

end;

Procedure Raspoz(stroka: String); {strokа - входная строка содержащая варианты духов, одного опрошенного человека. Процедура предназначена для разбора строки с вариантами духов и выделение из нее по одному варианту.}

var

NachSl, ExitPr, Pr: Boolean; {Логические переменные. NachSl - True-слово началось,}

{False - слово либо закончилось либо пока не началось; ExitPr True - уже найдено три варианта духов и используется чтобы больше не рассматривать входную строку, False - наоборот.}

kol, m: Integer; {kol - счетчик количества вариантов духов; m - счетчик}

s2: String; {s2 - строка в которую записывается один вариант духов и передается на сравнение с имеющимися}

begin

s2:=''; {Задание начальных условий}

NachSl:=False;

kol:=0;

ExitPr:=False;

Pr:=False;

For m:=1 to Length(Stroka) do {Цикл входной строки от 1-го символа до последнего}

begin

If not NachSl Then {Проверка если слово не началось то ищется первый значащий}

Begin {символ, т.е. отбрасываются лишние пробелы и проверочный}

If (Stroka[m]=' ') or (Stroka[m]=',') then {символ `,'}

continue

Else

begin

NachSl:=True; {Если найден значащий символ, записываем посимвольно}

s2:=s2+Stroka[m]; {вариант духов в строку s2}

end;

end

Else If NachSl Then {Если слово началось, ищем окончание слова, или просто}

Begin {дописываем в s2}

If Stroka[m]=',' Then

begin

NachSl:=False; {Как только найдено окончание слова передать его на}

Sravn(s2); {сравнение и вернуть переменным (кроме kol) начальные}

s2:=''; {значения.}

inc(kol);

If kol=3 Then

begin

ExitPr:=True; {Если найдено уже три варианта выходим из цикла}

Break;

end;

continue;

end;

If Pr and (Stroka[m]=' ') Then {Проверка кол-ва пробелов между словами}

Continue {на тот случай если вариант духов состоит из}

Else If (not Pr) and (Stroka[m]=' ') Then {нескольких слов. Пробел оставляется}

Begin {только один}

Pr:=True;

s2:=s2+Stroka[m];

end

Else If Stroka[m]<>' ' Then

begin

s2:=s2+Stroka[m];

Pr:=False;

end;

end;

end;

If not ExitPr Then Sravn(s2); {Если третий вариант не заканчивается запятой то отослать его на сравнение.}

end; {Raspoz}

{Основной блок программы в котором выводятся все строки с условиями и вариантами духов. Также ищется самый популярные духи}

var

Sinp, Sout: String;

n, mproiz, mduhi, maxd: Integer;

begin

For x:=1 to 5 do {обнуляется матрица голосов}

For y:=1 to 5 do

golosa[x,y]:=0;

ClrScr;

WriteLn('На конкурсе 5 парфюмерных фирм представили по 5 духов');

WriteLn;

for x:=1 to 5 do

begin

Write('Фирма ',proiz[x],' представила духи: '); {Вывод информации о производителях и их духов}

for y:=1 to 5 do

begin

Write(duhi[x,y],' ');

end;

WriTeLn;

WriteLn;

end;

Write('Сколько людей было опрошено? ');

ReadLn(n);

WriteLn;

WriteLn('Введите названия духов выбранные ',n,' опрошенными людьми.');

WriteLn('Каждый опрошенный может выбрать не более трех духов.');

WriteLn('Если вы введете более трех духов на одного опрошенного то');

WriteLn('будут приняты только первые три варианта.');

WriteLn('Названия духов необходимо вводить через запятую.');

WriteLn;

For i:=1 to n do

begin

Write('Введите выбор ',i,'-го опрошенного: '); {Ввод информации опроса}

ReadLn(Sinp);

mStr(Sinp, Sout);

Raspoz(Sout);

end;

WriteLn;

mproiz:=0;

mduhi:=0;

maxd:=0;

For x:=1 to 5 do

For y:=1 to 5 do

begin

If golosa[x,y] > maxd Then {Нахождение самых популярных духов.}

begin

maxd:=golosa[x,y];

mproiz:=x;

mduhi:=y;

end;

end;

WriteLn('Самые полпулярные духи "',duhi[mproiz,mduhi],

'" производимые фирмой ',proiz[mproiz]);

ReadLn

end.

Вариант работы программы

2. Задание на алгоритмизацию и программирование задач на файлы данных

Необходимо разработать алгоритм и написать программы для:

- создания файла данных;

- чтения созданного файла данных;

- добавления записей в созданный файл данных;

- обработка созданного файла данных по заданному условию.

Структура записи данных

Шифр товара

Наименование

Цена

План продажи (руб)

Факт. Продано (руб)

программирование алгоритмизация запись условие

Напечатать в выходном документе:

Процент выполнения плана и фактическую денежную сумму реализации для произвольно заданного товара.

Создание файла:

Рис. 2

Программа создания файла данных:

program Soz; {Программа создает типизированный файл.}

uses crt;

type t=record

shifr:string[6]; {Шифр товара}

naim:string[12]; {Наименование}

cena:real; {Цена}

plan:real; {План продажи}

fact:real; {Факт. продано}

end;

var

fl:file of t; {Файловая переменная}

d:t; {Переменная для обмена}

im:String[12]; {Строковая переменная для имени файла}

p:Byte; {переменная используемая для циклов}

begin

ClrScr; {Очистка экрана}

Write('Введите имя файла который будет создан (маска: ????????.???):');

ReadLn(im);

WriteLn;

assign(fl,im); {Связывание файловой переменной fl}

rewrite(fl); {Открытие файла для создания}

p:=1;

while p=1 do {Выполнить пока есть данные}

begin

Write('Введите шифр товара (не более 6 символов):');

ReadLn(d.shifr);

Write('Введите наименование товара (не более 12 символов):');

ReadLn(d.naim);

Write('Введите цену товара :');

ReadLn(d.cena);

Write('Введите план продажи (руб):');

ReadLn(d.plan);

Write('Введите сколько факт. продано(руб):');

ReadLn(d.fact);

write(fl,d); {Запись данных в файл}

Write('Будете продолжать вводить данные? (Да - 1; Нет - 0):');

ReadLn(p);

end;

close(fl); {Закрытие файла}

end.

Пример выполнения программы:

Чтение файла:

Рис. 3

Программа чтения файла данных:

program Chten; {Программа считывает данные из файла данных и выводит на экран}

uses crt;

type t=record

shifr:string[6];

naim:string[12];

cena:real;

plan:real;

fact:real;

end;

var

fl:file of t;

d:t;

im:String[12];

osh:Boolean; {Логическая переменная для проверки существования файла, который

открывается}

p:byte;

begin

osh:=True; {Задание начальных значений}

while Osh do {Задавать вопрос о открытии файла пока не будет введено правильное}

{имя файла}

begin

ClrScr;

Write('Введите имя созданного ранее файла (маска: ????????.???):');

ReadLn(im);

WriteLn;

assign(fl,im);

{$I-} {Отключаем контроль ошибок ввода-вывода}

reset(fl); {Открыть файл для обработки}

{$I+} {Включаем контроль ошибок ввода-вывода}

If IOResult<>0 then

begin

WriteLn('Такого файла не существует.');

Write('Хотите ввести другое имя (Да - 1; Нет - 0):');

ReadLn(p);

If p=1 Then Osh:=true

Else halt;

end

Else Osh:=False;

end;

ClrScr;

while not eof(fl) do {Продолжать до тех пор пока не будет достигнут конец файла}

begin

with d do begin

Read(fl,d); {Считывание данных из файла}

WriteLn('¦',shifr:6,'¦',naim:12,'¦',cena:12:2,'¦',plan:12:2,'¦',fact:12:2,'¦');

end; {Вывод данных на экран.}

end;

ReadLn;

Close(fl); {Закрытие файла}

end.

Пример выполнения программы:

Добавление записей:

Рис. 4

Программа добавления записей в файл данных:

program Dobav; {Программа добавляет в файл данных новые данные}

uses crt;

type t=record

shifr:string[6];

naim:string[12];

cena:real;

plan:real;

fact:real;

end;

var

fl:file of t;

d:t;

im:String[12];

p:Byte;

Osh:Boolean;

l:Integer; {Счетчик}

begin

osh:=True;

while Osh do

begin

ClrScr;

Write('Введите имя созданного ранее файла (маска: ????????.???):');

ReadLn(im);

WriteLn;

assign(fl,im);

{$I-}

reset(fl);

{$I+}

If IOResult<>0 then

begin

WriteLn('Такого файла не существует.');

Write('Хотите ввести другое имя (Да - 1; Нет - 0):');

ReadLn(p);

If p=1 Then Osh:=true

Else halt;

end

Else Osh:=False;

end;

l:=filesize(fl); {Определение количества записей в файле}

seek(fl,l); {Установка указателя за пределы файла, чтобы новые данные добавлялись}

{ в конце файла}.

WriteLn('Введите новые данные.');

p:=1;

while p=1 do

begin

Write('Введите шифр товара (не более 6 символов):');

ReadLn(d.shifr);

Write('Введите наименование товара (не более 12 символов):');

ReadLn(d.naim);

Write('Введите цену товара :');

ReadLn(d.cena);

Write('Введите план продажи (руб):');

ReadLn(d.plan);

Write('Введите сколько факт. продано(руб):');

ReadLn(d.fact);

write(fl,d);

Write('Будете продолжать вводить данные? (Да - 1; Нет - 0):');

ReadLn(p);

end;

close(fl);

end.

Пример выполнения программы:

Обработка записей:

Рис. 5

Программа обработки записей в файле данных

program Obrab; {Программа по обработке файла данных по определенному условию}

uses crt;

type t=record

shifr:string[6];

naim:string[12];

cena:real;

plan:real;

fact:real;

end;

var

fl:file of t;

d:t;

im:String[12];

Vern, osh:Boolean; {Vern\ True - если поиск параметров был успешен

False - если поиск не успешен}

p:byte;

st:String;

pr:Real;

begin

osh:=True;

while Osh do

begin

ClrScr; {Очистка экрана}

Write('Введите имя созданного ранее файла (маска: ????????.???):');

ReadLn(im);

WriteLn;

assign(fl,im);

{$I-}

reset(fl);

{$I+}

If IOResult<>0 then

begin

WriteLn('Такого файла не существует.');

Write('Хотите ввести другое имя (Да - 1; Нет - 0):');

ReadLn(p);

If p=1 Then Osh:=true

Else halt;

end

Else Osh:=False;

end;

p:=1;

while p=1 do begin { Пока р=1, исходные данные для ввода есть}

ClrScr;

p:=1;

Write('По каким параметрам будите искать: (Шифр товара - 2, Наименование - 3):');

ReadLn(p);

Write('Введите какой товар будете искать: ');

ReadLn(st);

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

Vern:=False;

while not eof(fl) do {Пока не достигнут конец файла}

begin

with d do begin {Работа с типизированной переменной d}

Read(fl,d);

If p=2 Then begin {Анализирование данных из файла по условию поиска}

If st=shifr Then

Vern:=True;

end

Else If p=3 Then begin {Анализирование данных из файла по условию поиска}

If st=naim Then

Vern:=True;

end;

If Vern Then begin {Если поиск успешен вычисляем проценты.}

pr:=(fact/plan)*100;

WriteLn('¦',shifr:6,'¦',naim:12,'¦',cena:12:2,'¦',plan:12:2,'¦',fact:12:2,'¦',pr:12:2,'¦'); {Вывод данных на экран}

Break;

end;

end;

end;

If not Vern Then WriteLn('Вы ввели не правильный параметр.');

Write('Хотите продолжить? (Да - 1; Нет - 0):');

ReadLn(p);

end;

ReadLn;

Close(fl);

end.

Пример выполнения программы:

Размещено на Allbest.ru

...

Подобные документы

  • Программа обработки экономической информации, осуществляющая ввод исходной информации из файла. Просмотр таблицы исходных данных и ее редактирование. Внутреннее представление данных. Хранение записей входного файла. Добавление и удаление строк из списка.

    курсовая работа [131,8 K], добавлен 28.12.2012

  • Одномерные и многомерные массивы, их инициализация. Создание новой базы данных "Пицца". Сортировка записей по стоимости заказа. Сохранение БД во внешний файл. Загрузка данных для принятия их к учету из файла. Редактирование записей в базе данных.

    контрольная работа [1,2 M], добавлен 20.09.2012

  • Рассмотрение правил записи, способов ввода и вывода, использования функций обработки символьных данных в Pascal. Описание алгоритмизации и программирования файловых структур данных, проектирования структуры файла. Ознакомление с работой данных массива.

    курсовая работа [336,2 K], добавлен 27.06.2015

  • Программа по организации заполнения массива объектов приложения из внешнего файла данных формата csv. Описание модуля Def.h, Plant.h и Main.cpp. Контрольный пример работы программы. Рассмотрение передачи неправильного имени файла в качестве параметра.

    курсовая работа [567,9 K], добавлен 27.01.2013

  • Особенности строковых типов данных и их обработка. Записи как совокупность поименованных компонентов различных типов, основные принципы работы с ними. Массивы - элементы и массивы структур. Понятие и свойства объединений. Файлы и работа с ними в языке СИ.

    презентация [73,1 K], добавлен 09.12.2013

  • Процедура ввода исходных данных в программу, вывод результатов работы программы на экран. Принцип организации хранения логически связанных наборов информации в виде файлов. Параметры характеристики файла, способы обращения к нему, соглашения по типу.

    реферат [14,5 K], добавлен 06.12.2011

  • Структура записей входного массива. Описание основных типов данных. Алгоритм программы: присвоение начальных значений переменных, чтение списка из файла, вывод данных на экран, выполнение обработки данных, сохранение списка в файл. Листинг программы.

    курсовая работа [325,2 K], добавлен 28.12.2012

  • Использование математических функций для алгоритмизации задач и отладки программ. Операторы сравнения и логические функции; реализация циклического процесса. Организация и обработка данных при помощи массивов. Функции преобразования и работы со строками.

    методичка [135,5 K], добавлен 24.10.2012

  • Основы проверки и расчета входных данных и вывода выходных данных программы, их блок-схемы. Реализация функции считывания числовых данных из файла, управление (создание, уничтожение и редактирование) визуальными компонентами во время выполнения программы.

    контрольная работа [1,3 M], добавлен 12.06.2009

  • Структура данных с указанием типов. Общая структурная схема программы. Алгоритмы сортировки вставками. Назначение make-файла. Функции управления программой; перемещения и корректировки введенных данных и их удаления справочника, загрузки данных из файла.

    курсовая работа [1,3 M], добавлен 12.01.2016

  • Структура программного комплекса. Ввод информации из заданного файла. Создание набора данных. Добавление элементов в конец набора данных. Просмотр всех элементов набора данных. Копирование информации из НД в заданный файл. Сортировка массива по номерам.

    курсовая работа [630,5 K], добавлен 01.06.2014

  • Создание программного продукта на языке Pascal в визуальной среде программирования Borland Developer Studio в консольном приложении. Разработка типизированного файла для записи данных и их вывод на экран, добавление данных в конец файла, поиск информации.

    курсовая работа [1,0 M], добавлен 04.12.2011

  • Общие сведения об алгоритмах. Свойство и этапы построения алгоритма. Нисходящее проектирование программ. Основные алгоритмические структуры. Принципы структурной алгоритмизации. Массивы случайных чисел. Ввод исходных данных. Определение и вывод данных.

    методичка [435,3 K], добавлен 09.12.2014

  • Формализация и стандартизация данных, необходимых для разработки веб-сайта. Описание среды программирования. Требования к техническому обеспечению. Алгоритмизация данных и защитное программирование. Анализ результатов решения и инструкция пользователю.

    дипломная работа [3,7 M], добавлен 30.06.2014

  • Особенности написания базы данных на языках программирования C++, применимой для расписания занятий в университете. Этапы работы: ввод новой записи, изменение, просмотр базы данных, поиск данных. Алгоритмы, используемые в процессе выполнения проекта.

    практическая работа [16,6 K], добавлен 12.06.2010

  • Представление (построение, создание) списка данных в виде линейного однонаправленного списка. Формирование массива данных. Вывод данных на экран. Алгоритм удаления, перемещения данных. Сортировка методом вставки. Алгоритм загрузки данных из файла.

    курсовая работа [2,1 M], добавлен 16.05.2015

  • Разработка программы на языке Си++ и осуществление постановки и выбора алгоритмов решения задач обработки экономической информации, создание и редактирование базы данных, сортировка записей по определенному запросу, анализ эффективности обработки данных.

    контрольная работа [316,8 K], добавлен 28.08.2012

  • Структура заданного исходного файла и структуры данных, соответствующие данным файла. Подпрограмма проверки принадлежности текста к одной из шести кодовых таблиц. Алгоритмы перекодировки файла в cp1251. Алгоритм сортировки записей исходного файла.

    курсовая работа [63,7 K], добавлен 12.12.2010

  • Создание программы для обработки структуры данных. Возможность ввода и записи данных на персональном компьютере. Прикладное программирование на языке Turbo Pascal. Свободное редактирование записанных данных с помощью программы, написанной на Turbo Pascal.

    лабораторная работа [11,4 K], добавлен 13.05.2011

  • Изучение применяемых в программировании и информатике структур данных, их спецификации и реализации, алгоритмов обработки данных и анализ этих алгоритмов. Программа определения среднего значения для увеличивающегося количества чисел заданного типа.

    контрольная работа [16,0 K], добавлен 19.03.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.