Диплом, курсовая, контрольная работа
Помощь в написании студенческих работ

Структуры и алгоритмы обработки данных

КонтрольнаяПомощь в написанииУзнать стоимостьмоей работы

На экране появляется сообщение производить проверку или нет, значение записывается в переменную `prov', если пользователь нажимает `y' то выполняем проверку, если нет переходим к упорядочиванию массива. Для проверки среднего значения, находим сумму всех элементов и делим на их количество sum:=sum+stat; sum:=sum/all; где `sum'- сумма элементов массива `stat'. Выводим среднее значение на экран. При… Читать ещё >

Структуры и алгоритмы обработки данных (реферат, курсовая, диплом, контрольная)

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

«Южно-Уральский государственный университет»

(Национальный исследовательский университет) в г. Озерске Кафедра «Информатика»

Контрольная работа по дисциплине Структуры и алгоритмы обработки данных

Руководитель Ивановская М.Н.

Автор работы, студенты групп 125,135-ОзЗ Карлов А.А.

Наймушин Е.В.

Озерск 2011

Введение

Задание № 1

Задание № 2

Задание № 3

Приложение

Введение

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

Целью дисциплины «Структуры и алгоритмы обработки данных» является изучение применяемых в программировании (и информатике) структур данных, их спецификации и реализации, алгоритмов обработки данных и анализ этих алгоритмов, взаимосвязь алгоритмов и структур.

Создание компьютерной программы, предназначенной для решения данных практических задач, можно разбить на следующие этапы: формализация и создание технического задания на исходную задачу; разработка алгоритма решения задачи; кодирование, тестирование и отладка программы. Решение предоставленных заданий реализовано на процедурно-ориентированном языке программирования высокого уровня — Паскаль.

Задание № 1

Составить программу определения среднего значения для увеличивающегося количества чисел заданного типа.

Исходные значения, для которых рассчитывается среднее, хранятся в массиве. Затем к исходным значениям добавляются от одного и более новых чисел. Для полученного нового ряда чисел рассчитывается новое среднее значение. Процесс ввода новых чисел и расчета среднего может повторяться неограниченное количество раз.

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

Каждое рассчитанное среднее значение должно выводиться на экран. Кроме среднего можно выводить общее количество чисел, по которым рассчитывается среднее. Проверить правильность расчета среднего значения любым способом.

Решение

В нашем варианте для выполнения первого задания используем одномерный массив типа float и статичный одномерный массив. В начале нашей программы запускаем цикл, запрашиваем у пользователя действительные числа и вносим их в массив `stat' (который изначально ограничен до 200). После каждого ввода элемента в массив, расчет среднего для ряда чисел с учетом вновь введенных значений выполняется на основе ранее полученного среднего значения. sr:=(sr+stat[i])/2; где 'sr' - среднее значение, `stat[i]'- новый введенный элемент массива. Количество элементов в массиве также отображается на экране и записывается в переменную `all'.

Для остановки занесения данных пользователю надо нажать 0 на клавиатуре. данные алгоритм программирование структура

На экране появляется сообщение производить проверку или нет, значение записывается в переменную `prov', если пользователь нажимает `y' то выполняем проверку, если нет переходим к упорядочиванию массива. Для проверки среднего значения, находим сумму всех элементов и делим на их количество sum:=sum+stat[i]; sum:=sum/all; где `sum'- сумма элементов массива `stat'. Выводим среднее значение на экран.

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

Задание № 2

Составить программу определения максимального значения для увеличивающегося количества чисел заданного типа.

Решение Определение максимального значения для увеличивающегося количества чисел заданного типа реализовано в той же программе. Смысл заключается в постоянной перезаписи переменной `maxi', если выполняется условие, когда каждый новый введенный элемент массива `stat[i]' больше переменной `maxi'. Вывод максимального значения на экран происходит после остановки цикла нажатием клавиши 0 и перехода на метку `G'.

Задание № 3

Предложить метод упорядочения набора чисел по возрастанию (или убыванию). Составить программу, реализующую предложенный метод и проверить правильность её работы. В тексте программы должны быть поясняющие комментарии.

Решение Программа упорядочения набора чисел запускается после остановки цикла задания 1 и перехода на метку `G'.

Запрашиваем у пользователя способ упорядочивания элементов массива `stat', если 1 то по убыванию, если 2 по возрастанию. Вид упорядочивания заносится в переменную `vd'. После выбора переходим к циклу упорядочивания. Смысл упорядочивания заключается в запуске цикла (for i:=0 to all) в котором заключен второй цикл (for i2:=0 to all), если элемент массива `stat[i]' больше элемента массива `stat[i2]' то меняем их местами в массиве, через временные переменные `a' и `b'.

После обработки цикла выводим на экран элементы массива через пробел, в зависимости от вида упорядочивания (переменная `vd').

Выводим максимальное значение (первый элемент массива) и минимальное значение (последний элемент массива).

Приложение

program rasdva;

uses

crt;

const max=200;

var

stat:array[0.max] of real;

sr, sum, a, b, maxi: real;

i, i2, all, vd: integer;

prov:string;

label g;

begin

textbackground (blue);

textcolor (white);

clrscr;

writeln ('Программа вычисления среднего значения для увеличивающегося колличества чисел типа Float');

Writeln ('Для прекращения ввода чисел нажмите 0');

WriteLn;

for i:=0 to max do begin

write ('Введите любое действительное число:');

readln (stat[i]);

if stat[i]>maxi then maxi:=stat[i];

all:=i;

if stat[i]=0 then goto g;

if sr<>0 then begin sr:=(sr+stat[i])/2;

writeln ('Среднее значение:', sr:0:3,', всего чисел в массиве:', i+1); end else sr:=stat[i];

end;

g:

Writeln;

Writeln ('Максимальное введенное число = ', maxi:0:2);

writeln;

write ('Чтобы провести проверку нажмите у/n:');

writeln;

readln (prov);

if prov='y' then begin for i:=0 to all do

sum:=sum+stat[i];

sum:=sum/all;

writeln ('Среднее число равно ', sum:0:2,' и оно отличается от расчета среднего для ряда чисел с учетом вновь введенных значений, из за выполнения вычислений на основе ранее полученных средних значений');

all:=all-1;

Writeln;

Writeln ('…программа завершена');

readln;

exit;

end

else

Write ('Вывести элементы массива по убыванию (1) или возрастанию (2):');

readln (vd);

if stat[0]=0 then exit;

for i:=0 to all do

for i2:=0 to all do

if stat[i]>stat[i2] then begin

a:=stat[i]; b:=stat[i2]; stat[i]: =b; stat[i2]: =a; end;

if vd=1 then for i:=0 to all do write (stat[i]: 0:2,' ')

else begin for i:=0 to all do write (stat[all-i]: 0:2,' ') end;

writeln;

Writeln ('Максимальное число: ', stat[0]: 0:2);

Writeln ('Минимальное число: ', stat[all]: 0:2);

Writeln;

Writeln ('…программа завершена');

readln;

exit;

end.

Размещено на

Показать весь текст
Заполнить форму текущей работой