Среднее арифметическое всех чисел

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

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

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