Алгоритмизация и программирование задач в различных программных средах
Пример выполнения задания на алгоритмизацию и программирование задач на массивы, файлы данных. Код и вариант работы. Структура записи данных. Программа чтения файла данных, обработки записей. Обработка созданного файла данных по заданному условию.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 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