Среднее арифметическое всех чисел
Методы обработки информации: массив, типизированный файл, динамический список - их достоинства и недостатки. Применение различных способов обработки данных для успешного и оптимального написания программ. Среднее арифметическое положительных чисел.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 20.12.2010 |
Размер файла | 12,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования Российской Федерации
ИжГТУ
Кафедра вычислительной техники
Курсовая работа по программированию
Выполнил: студент гр. 262,
Дугин А.Ю
Проверил: преподаватель кафедры ВТ,
Талашева В.С
Ижевск, 2003
Текст задачи
Найти среднее арифметическое положительных чисел. Удалить все числа, большие среднего арифметического. Исходные данные хранятся в текстовом файле, переписать их в массив, динамический линейный список и типизированный файл. Обработку вести во всех трех случаях. После удаления найти среднее арифметическое всех оставшихся чисел.
массив файл список арифметический
Листинг программы
program kurs;
uses crt;
type din=^rec;
rec=record
info:integer;
next:din;
end;
var f1:text;
f2:file of integer;
sr_ar:real;
sum:integer;
x,y,i:integer;
proc:integer;
ch:char;
kol:integer;
first,p1,p2:din;
priz:boolean;
{ *** МЕНЮ *** }
procedure menu;
begin
clrscr;
writeln('Выберете нужный Вам способ обработки информации:');
writeln('1-с помощью массива');
writeln('2-с помощью типизированного файла');
writeln('3-с помощью динамического линейного списка');
writeln('Esc-выход');
writeln;
end;
{ *** СОРТИРОВКА В МАССИВЕ *** }
procedure massiv;
const n=10;
var a:array [1..n] of integer;
i:integer;
kol:integer;
begin
reset(f1);
i:=1;
while not seekeof(f1) do
begin
read(f1,x);
a[i]:=x;
inc(i);
end;
for i:=1 to n do
write(a[i],' ');
sum:=0;
for i:=1 to n do
sum:=sum+a[i];
sr_ar:=sum/n;
write('Среднее арифметическое=',sr_ar:2:2);
writeln;
writeln('После сортировки в массиве:');
sum:=0;
kol:=0;
for i:=1 to n do
if a[i]<=sr_ar then
begin
write(a[i],' ');
sum:=sum+a[i];
inc(kol);
end;
sr_ar:=sum/kol;
write('Среднее арифметическое всех оставшихся чисел=',sr_ar:2:2);
writeln;
end;
{ *** СОРТИРОВКА В ФАЙЛЕ *** }
procedure vivod_sr_ar;
begin
sum:=0;
assign(f2,'C:\f2.dat');
reset(f2);
while not eof(f2) do
begin
read(f2,x);
write(x,' ');
sum:=sum+x;
end;
sr_ar:=sum/filesize(f2);
writeln('Среднее арифметическое файла=',sr_ar:2:2);
end;
procedure fail;
var z:integer;
begin
writeln;
reset(f1);
rewrite(f2);
while not seekeof(f1) do
begin
read(f1,x);
write(f2,x);
end;
write('Типизированный файл состоит из чисел:');
close(f2);
writeln;
vivod_sr_ar;
repeat
priz:=true;
reset(f2);
repeat
read(f2,x);
if x>sr_ar then
begin
priz:=false;
for i:=filepos(f2) to filesize(f2)-1 do
begin
seek(f2,i);
read(f2,z);
seek(f2,i-1);
write(f2,z);
end;
seek(f2,filesize(f2)-1);
truncate(f2);
end;
until EOF(f2);
until priz=true;
writeln('После сортировки файла:');
vivod_sr_ar;
writeln;
end;
{ *** СОРТИРОВКА В ДИНАМИЧЕСКОМ СПИСКЕ *** }
procedure sozd_spiska;
begin
reset(f1);
first:=nil;
while not seekeof(f1) do
begin
new(p1);
read(f1,p1^.info);
p1^.next:=nil;
if first=nil then
first:=p1
else p2^.next:=p1;
p2:=p1;
end;
writeln('Список создан');
end;
procedure vivod_spiska;
begin
p1:=first;
while p1<>nil do
begin
write(p1^.info,' ');
p1:=p1^.next;
end;
writeln('Конец списка');
end;
procedure poisk_sr;
begin
kol:=0;
sum:=0;
p1:=first;
while p1<>nil do
begin
sum:=sum+p1^.info;
inc(kol);
p1:=p1^.next;
end;
sr_ar:=sum/kol;
writeln('Среднее арифметическое списка=',sr_ar:2:2);
end;
procedure sort_spiska;
begin
sozd_spiska;
vivod_spiska;
poisk_sr;
p1:=first;
while p1^.next<>nil do
begin
if p1^.next^.info>sr_ar then
begin
p2:=p1^.next;
p1^.next:=p1^.next^.next;
dispose(p2);
end
else p1:=p1^.next;
end;
writeln('Список после сортировки:');
vivod_spiska;
poisk_sr;
writeln;
end;
{ *** ГОЛОВНАЯ ПРОГРАММА *** }
BEGIN
clrscr;
assign(f1,'C:\123.txt');
assign(f2,'C:\f2.dat');
menu;
repeat
ch:=readkey;
case ord(ch) of
49 : massiv;
50 : fail;
51 : sort_spiska;
end;
until ord(ch)=27;
close(f1);
readkey;
END.
Вывод
Решая поставленную задачу, я использовал три метода обработки информации: массив, типизированный файл, динамический список. Каждый из них имеет свои достоинства и недостатки. Работая с массивом, мы не можем удалить из него какие-то интересующие нас элементы. Сортировать массив удобно, так как к элементу можно обратиться по его порядковому номеру. Динамические переменные позволяют без затруднений удалять элементы списка из любого его места. Недостаток списков заключается в том, что часто возникают проблемы потерянных ссылок. Также у динамической переменной нет имени, поэтому обратиться к ней можно только при помощи указателя. При работе же с файлами неудобно удалять элементы из середины файла, так как приходится переставлять все компоненты. Большое достоинство файловой обработки информации заключается в том, что в файлах можно сохранять какие-либо данные. Обработка в массивах и динамических списках происходит лишь в оперативной или динамической памяти, результаты можно вывести только на экран. Из всего сказанного следует, что для успешного и оптимального написания программ надо применять различные способы, не ограничиваясь каким-то одним.
Размещено на Allbest.ru
Подобные документы
Анализ различных способов хранения информации: одномерный массив, типизированный файл и динамический список. Сортировка только положительных чисел. Словесное описание алгоритма. Блок-схема процедуры обработки данных с помощью одномерного массива.
контрольная работа [319,7 K], добавлен 29.05.2014Запись в массив листа Excel c именем "Эксперимент". Среднее арифметическое значение элементов массива. Вывод диалогового окна. Фрагмент программы, организующий считывание исходного массива в программу для обработки. Адрес ячейки электронной таблицы.
контрольная работа [1,1 M], добавлен 16.08.2011Обработка текстовых данных, хранящихся в файле. Задачи и алгоритмы обработки больших массивов действительных и натуральных чисел. Практические задачи по алгоритмам обработки данных. Решение задачи о пяти ферзях. Программа, которая реализует сортировку Шел
курсовая работа [29,2 K], добавлен 09.02.2011Алгоритм обработки при работе с массивом, типизированным файлом и динамическим списком. Применение для массивов и типизированных файлов произвольной адресации элементов, для динамических списков - последовательной адресации. Блок-схема и текст программы.
реферат [63,5 K], добавлен 24.05.2013Структура записей входного массива. Описание основных типов данных. Алгоритм программы: присвоение начальных значений переменных, чтение списка из файла, вывод данных на экран, выполнение обработки данных, сохранение списка в файл. Листинг программы.
курсовая работа [325,2 K], добавлен 28.12.2012Методы арифметического кодирования. Основные функции программ, реализующие алгоритмы кодирования по методам Хаффмана, Голомба, Фибоначчи и Элиаса. Разработка программно-аппаратных средств оптимального арифметического кодирования и их экономический расчет.
дипломная работа [1,1 M], добавлен 26.05.2012Составление программной функции, которая вычисляет среднее арифметическое элементов непустого списка. Функция, которая находит наименьший элемент дерева. Нахождение искомых элементов, добавление элементов в дерево. Выведение состояния дерева на экран.
лабораторная работа [636,3 K], добавлен 02.04.2014Изучение применяемых в программировании и информатике структур данных, их спецификации и реализации, алгоритмов обработки данных и анализ этих алгоритмов. Программа определения среднего значения для увеличивающегося количества чисел заданного типа.
контрольная работа [16,0 K], добавлен 19.03.2015Организация файлов и доступ к ним. Файловые операции. Программирование с использованием встроенных функций ввода-вывода; линейных, разветвляющихся и циклических вычислительных процессов с использованием If-else, оператора выбора Case; массивов и матриц.
курсовая работа [5,8 M], добавлен 24.05.2014Составление программы разветвляющейся структуры для вычисления заданной функции. Нахождение произведения чётных и нечётных первых чисел натурального ряда. Приёмы программирования обработки одномерных массивов. Расчет суммы положительных элементов массива.
контрольная работа [1,3 M], добавлен 20.12.2012