Контрольная работа по "Информатике"

Автор: Пользователь скрыл имя, 30 Апреля 2013 в 13:23, контрольная работа

Описание работы

Составить программу для нахождения минимального и максимального элементов массива, а также индексов этих элементов. Ранжировать (упорядочить) одномерный массив по заданному признаку.
(9,56; -4,6; -12,45; 0,45; 98; 233; 5,09; -5,1; 0,004) по убыванию

Содержание

1.Контрольное задание №7 3
2.Контрольное задание №8 6
3.Контрольное задание №9 8
4.Контрольное задание №10 11
5.Контрольное задание №11 14

Работа содержит 1 файл

82.docx

— 164.24 Кб (Скачать)

 

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

ДонГТУ

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

 

 

 

 

 

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

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

Вариант №82

 

 

 

 

 

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

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

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

 

 

 

 

 

 

 

 

 

 

Алчевск, 2012

СОДЕРЖАНИЕ

 

  1. Контрольное задание №7        3
  2. Контрольное задание №8        6
  3. Контрольное задание №9        8
  4. Контрольное задание №10       11
  5. Контрольное задание №11       14

 

 

Контрольное задание № 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;

Информация о работе Контрольная работа по "Информатике"