Программы нахождения массивов

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

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 30.04.2013
Размер файла 1,0 M

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

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

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

Министерство образования науки, молодежи и спорта Украины

ДонГТУ

Кафедра ЭК и ИТ

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

По дисциплине: «Информатика»

Вариант №82

Выполнил: ст.гр. ЭПП-12-2з

Крымцева А.Ю.

Проверил: Хмелев А.Г.

Алчевск, 2012

Контрольное задание № 7

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

(9,56; -4,6; -12,45; 0,45; 98; 233; 5,09; -5,1; 0,004) по убыванию

Решение

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

Блок-схема

Листинг программы

Program zadanie_7;

uses CRT;

var

i, j, i_max, i_min:integer;

a_max, a_min, buf:real;

A: array [1..9] of real;

begin

clrscr;

{Ввод исходного массива}

writeln ('Введите массив');

for i:=1 to 9 do

read (A[i]);

writeln ('Исходный массив:');

for i:=1 to 9 do write (A[i]:6:3, ' ');

{Нахождение наибольшего а наименьшего элементов}

a_max:=A[1];

a_min:=A[1];

i_max:=1;

i_min:=1;

for i:=2 to 9 do

begin

if (A[i]>a_max) then

begin

a_max:=A[i];

i_max:=i;

end;

if (A[i]<a_min) then

begin

a_min:=A[i];

i_min:=i;

end;

end;

{Ранжировка по убыванию}

for i:=1 to 8 do

for j:=i+1 to 9 do

if A[j]>A[i] then

begin

buf:=A[j]; A[j]:=A[i]; A[i]:=buf;

end;

{Вывод результатов}

writeln;

writeln ('Максимальный элемент = A[',i_max,']=',a_max:6:3);

writeln ('Минимальный элемент = A[',i_min,']=',a_min:6:3);

writeln('Массив после сортировки:');

for i:=1 to 9 do write (A[i]:7:3,' ');

end.

Результат работы программы

Контрольное задание № 8

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

(ax2 + bx + c = 0), используя функцию пользователя.

Примечание: в данных уравнениях значения коэффициентов a, b, c таковы, что дискриминант D = b2 - 4ac > 0

Решение

Блок-схема

Часть блок-схемы (вычислительные блоки) для процедуры Сv_u - решения квадратного уравнения с заданными коэффициентами a,b,c

Листинг программы

program Zadanie_8;

uses CRT;

var

a,b,c,k1,k2 : real;

{Процедура вычисления корней квадратного уравнения}

procedure kv_ur (var a:real; b:real; c:real; k1:real; k2:real);

var

d:real;

begin

d:=b*b-4*a*c;

d:=sqrt(d);

k1:=(-b+d)/2/a;

k2:=(-b-d)/2/a;

writeln('Коэффициенты a=',a:6:2,' b=',b:6:2,' c=',c:6:2);

writeln('Корни квадратного уравнения:',' k1=',k1:8:4,' k2=',k2:8:4);

end;

begin

clrscr;

{Первый вариант коэффициентов }

write('Введите коэффициенты a, b, c: ');

readln (a,b,c);

kv_ur(a,b,c,k1,k2);

{Второй вариант коэффициентов}

writeln;

write('Введите коэффициенты a, b, c: ');

readln (a,b,c);

kv_ur(a,b,c,k1,k2);

end.

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

Контрольное задание № 9

Элементы двумерных массивов выбрать произвольно. Вывести их на печать в формате и с заголовком. Для решения данной задачи использовать подпрограмму типа FUNCTION.

В матрицах У(2,8) и О(4,3) определить сумму элементов третьего столбца матрицы. программа массив одномерный уравнение

Решение

Блок-схема

Массивы формируются с помощью встроенной функции random ().

Функция Pechat () осуществляет печать массива в прямоугольном виде.

Функция Sred(, , ,k) подсчитывает среднее значение элементов k-го столбца матрицы.

Листинг программы

Program Zadanie_9;

Uses CRT;

type

mm = array [1..10, 1..10] of real;

var

l,i,j,n1m,n2m,n1p,n2p:integer;

b:real;

my,mo: mm;

{Функция печати массивов}

Function Pechat(n1:integer; n2:integer; h:mm):real;

var

i,j:integer;

begin

writeln (' Массив размерности ',n1,'x',n2);

write(' ');

for l:=1 to n2*9 do write('_');

writeln;

for i:=1 to n1 do

begin

for j:=1 to n2 do

write(' I ',h[i,j]:6:3);

writeln(' I ');

write(' ');

for l:=1 to n2*9 do write('-');

writeln;

end;

writeln;

end;

{Функция подсчета среднего значения j-го столбца}

Function Sred(n1:integer; n2:integer; h:mm; j:integer): real;

var

k:integer;

s:real;

begin

s:=0.0;

for k:=1 to n1 do

s:=s+h[k,j];

Sred:=s/n1;

end;

begin

clrscr;

{Формирование массива У}

writeln('Введите размерность массива У');

read(n1m,n2m);

for i:=1 to n1m do

begin

for j:=1 to n2m do

begin

my[i,j]:=random(100)*0.2;

end;

end;

{Формирование массива О}

writeln('Введите размерность массива О');

read(n1p,n2p);

for i:=1 to n1p do

begin

for j:=1 to n2p do

begin

mo[i,j]:=random(100)*0.3;

end;

end;

{ Печать массивов }

Pechat(n1m,n2m,my);

Pechat(n1p,n2p,mo);

writeln;

{ Подсчет средних значений 1-го и 3-го столбцов}

b:=Sred(n1m,n2m,my,1);

writeln ('Среднее значение элементов первого столбца массива У=',b:7:3);

b:=Sred(n1m,n2m,my,3);

writeln ('Среднее значение элементов третьего столбца массива У=',b:7:3);

b:=Sred(n1p,n2p,mo,1);

writeln ('Среднее значение элементов первого столбца массива O=',b:7:3);

b:=Sred(n1p,n2p,mo,3);

writeln ('Среднее значение элементов третьего столбца массива O=',b:7:3);

end.

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

Контрольное задание № 10

Задать два одномерных массива значений, чтобы величины элементов массивов попадали в заданный интервал на всем диапазоне (значения выбрать произвольно). Для решения данной задачи применить подпрограмму типа Procedure.

Т(15), L(8) Определить среднегеометрическое значение

(-1;3) положительных элементов двух массивов

Решение

Блок-схема

Массивы Т(15), L(8) формируются с помощью встроенной функции random. Для этого используется подпрограмма-процедура fmas.

Для замены определения среднегеометрического значения положительных элементов в массиве используется процедура kp

Листинг программы

Program Zadanie_10;

Uses CRT;

type mm=array [1..20] of real;

var mg,mk:mm;

n1,n2,k:integer;

s1,s2,x1,x2,p,sg:real;

{Процедура формирования массива}

procedure fmas(n:integer; x1:real; x2:real; var b:mm);

var k:integer;

begin

for k:=1 to n do

b[k]:=x1+(x2-x1)*random;

for k:=1 to n do

write(b[k]:6:3,' ');

writeln;

end;

{Процедура подсчета среднегеометрического значения

положительных элементов }

procedure kp (b:mm; n:integer; var k:integer; var p:real);

var i,l:integer;

begin

k:=0; sg:=0;

p:=1;

for i:=1 to n do

begin

if b[i]>0 then

begin

k:=k+1;

p:=p*b[i];

end;

end;

if k=0 then p:=0;

sg:=exp(ln(p)*k);

end;

{}

begin

clrscr;

writeln('Введите размеры массивов T и L');

read (n1,n2);

writeln('Введите интервал');

read (x1,x2);

writeln('Массив T');

fmas(n1,x1,x2,mg);

writeln;

writeln('Массив L');

fmas(n2,x1,x2,mk);

writeln;

kp(mg,n1,k,p);

writeln('Массив T:');

writeln('среднегеометрическое значения положительных элементов в массиве ',sg);

writeln;

kp(mk,n2,k,p);

writeln('Массив L:');

writeln('среднегеометрическое значения положительных элементов в массиве ',sg);

end.

Результаты работы программы

Контрольное задание № 11

Составить программу из 4 модулей.

Модуль 1. Сформировать одномерный массив А(35), значения элементов которого располагаются произвольным образом в диапазоне от -32 до 45. Сформировать из массива А новый массив В, элементы которого больше, чем значение максимального отрицательного элемента массива А. Записать массивы А и В в файлы параллельного доступа с именами М1.txt и М2.txt соответственно.

Модуль 2. Вывести данные из файлов М1.txt и М2.txt на экран и принтер в 5 столбцов с заголовками МАССИВ А и МАССИВ В. Массивы должны быть выведены с индексами (индексы изменяются по строке).

Модуль 3. Выполнить сортировку данных в файле М1.txt по возрастанию, а в файле М2.txt по убыванию. Для сортировки использовать подпрограмму типа SUB. Сортировать не элементы массивов, а записи в файлах.

Модуль 4. Вывести данные из файлов М1.txt и М2.txt на экран и принтер в 3 строки с заголовками ОТСОРТИРОВАННЫЙ МАССИВ А и ОТСОРТИРОВАННЫЙ МАССИВ В. Массивы должны быть выведены с индексами (индекс изменяется по столбцу)

Решение

Структурная блок-схема

Листинг программы

{ Головная программа}

Program modul;

Uses CRT, Mod1, Mod2, Mod3, Mod4;

var

a,b: mas;

n_b,n:integer;

begin

clrscr;

begin form_a(a);

form_b(a,b,n_b);

end;

Pec1(1,35);

writeln;

Pec1(2,n_b);

writeln;

Sort_v(1,35);

Sort_u(2,n_b);

Pec2(1,35);

writeln;

Pec2(2,n_b);

end.

Unit Mod1;

INTERFACE

type

mas = array [1..35] of real;

var

fa, fb:file of real;

s:real;

Procedure form_a(var a:mas);

Procedure form_b(a:mas; var b:mas; var n:integer);

IMPLEMENTATION

{Формирование массива А и запись его в файл М1.txt}

Procedure form_a(var a:mas);

var i,k:integer;

begin

assign (fa,'M1.txt');

rewrite(fa);

s:=100;

for i:=1 to 35 do

begin

a[i]:=-32+(45+32)*random;

write (fa,a[i]);

if a[i]<s then s:=a[i];

end;

writeln('максимальный отрицательный элемент масссива А=',s:6:2);

writeln;

close (fa);

end;

{Формирование массива В и запись его в файл М2.txt}

Procedure form_b(a:mas; var b:mas; var n:integer);

var

i,i_f: integer;

pol:real;

begin

assign (fb,'M2.txt');

rewrite (fb);

n:=0;

for i:=1 to 35 do

begin

if a[i]>s then

begin

n:=n+1;

b[n]:=a[i];

write(fb,b[n]);

end;

end;

close (fb);

end;

end.

Unit Mod2;

Interface

Procedure Pec1(k_p:integer; n:integer);

IMPLEMENTATION

{Процедура печати массивов в 7 столбцов}

Procedure Pec1(k_p:integer; n:integer);

var i,j,d,k:integer;

f: file of real;

c:char;

p:real;

begin

if k_p=1 then

begin

writeln('Массив A');

c:='A';

assign(f,'M1.txt');

end

else

begin

writeln('Массив B');

c:='B';

assign(f,'M2.txt');

end;

reset(f);

d:=0; k:=1;

while not eof(f) do

begin

read(f,p);

write(c,'[',k:2,']=',p:6:2,' ');

d:=d+1;k:=k+1;

if d=5 then

begin

writeln;d:=0;

end;

end;

close(f);

end;

end.

Unit Mod3;

INTERFACE

Procedure Sort_v(k_p:integer; n:integer);

Procedure Sort_u(k_p:integer; n:integer);

IMPLEMENTATION

{Сортировка массива по возрастанию}

Procedure Sort_v(k_p:integer; n:integer);

var

i,j:integer;

c:char;

p,max:real;

v:array [1..35] of real;

f:file of real;

begin

if k_p=1 then

begin

c:='A';

assign(f,'M1.txt');

end

else

begin

c:='B';

assign(f,'M2.txt');

end;

reset(f);

for i:=1 to n do

begin

read(f,p);

v[i]:=p;

end;

close(f);

for i:=1 to n-1 do

for j:=i+1 to n do

if v[j]<v[i] then

begin

max:=v[j]; v[j]:=v[i]; v[i]:=max;

end;

rewrite(f);

for i:=1 to n do

write(f,v[i]);

close(f);

end;

{Сортировка массива по убыванию}

Procedure Sort_u(k_p:integer; n:integer);

var

i,j:integer;

c:char;

p,min:real;

v:array [1..35] of real;

f:file of real;

begin

if k_p=1 then

begin

c:='A';

assign(f,'M1.txt');

end

else

begin

c:='B';

assign(f,'M2.txt');

end;

reset(f);

for i:=1 to n do

begin

read(f,p);

v[i]:=p;

end;

close(f);

for i:=1 to n-1 do

for j:=i+1 to n do

if v[j]>v[i] then

begin

min:=v[j]; v[j]:=v[i]; v[i]:=min;

end;

rewrite(f);

for i:=1 to n do

write(f,v[i]);

close(f);

end;

end.

Unit Mod4;

Interface

Procedure Pec2(k_p:integer; n:integer);

IMPLEMENTATION

{ Процедура печати массива в 6 строк}

Procedure Pec2(k_p:integer; n:integer);

var i,j,d,k,i1:integer;

f: file of real;

c:char;

m: array [1..35] of real;

p:real;

begin

if k_p=1 then

begin

writeln('Отсортированный массив A');

c:='A';

assign(f,'M1.txt');

end

else

begin

writeln('Отсортированный массив B');

c:='B';

assign(f,'M2.txt');

end;

for j:=1 to 3 do

begin

i:=j-1; reset(f);

while i<n do

begin

seek(f,i);

read(f,p);

write(c,'[',i+1:2,']=',p:6:2,' ');

i:=i+6;

end;

writeln;

close(f);

end;

end;

end.

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

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


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

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

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

  • Разработка и реализация типовых алгоритмов обработки одномерных массивов на языке Delphi. Максимальный и минимальный элемент массива. Значение и расположение элементов массива. Элементы массива, находящиеся перед максимальным или минимальным элементом.

    лабораторная работа [12,8 K], добавлен 02.12.2014

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

    лабораторная работа [259,3 K], добавлен 14.05.2011

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

    отчет по практике [1,2 M], добавлен 01.12.2012

  • Составление программы разветвляющейся структуры для вычисления заданной функции. Нахождение произведения чётных и нечётных первых чисел натурального ряда. Приёмы программирования обработки одномерных массивов. Расчет суммы положительных элементов массива.

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

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

    лабораторная работа [12,8 K], добавлен 09.01.2011

  • Особенности создания массивов в AutoCAD 2012, основные команды. Создание прямоугольного массива путем размножения выбранных элементов с заданным количеством рядов и столбцов, образующих прямоугольную матрицу. Этапы проектирования кругового массива.

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

  • Изучение элементов языка С++, программирование разветвлений и циклов с использованием операторов условного и перехода. Обработка одномерных массивов. Поиск максимального элемента массива с заданной размерностью. Листинги программы и результатов.

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

  • Модификация и сравнения двух текстовых файлов. Программа, написанная на языке программирования Cи и работоспособна на IBM совместимых компьютерах. Псевдографический и графический интерфейсы. Анализ программы методом сортировки одномерного массива.

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

  • Разработка программы для нахождения корней нелинейных уравнений несколькими методами: методом хорд, касательных, половинного деления, итераций. Реализации программы с помощью системы программирования Delphi 7. Методика работы пользователя с программой.

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

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