Цель и задачи расчетно-графической работы по информатике

Автор работы: Пользователь скрыл имя, 23 Октября 2013 в 19:35, контрольная работа

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

Расчетно-графическая работа по информатике (РГР) завершает в курсе информатике раздел “Алгоритмизация и программирование на языке высокого уровня”. При ее выполнении студент должен продемонстрировать знания и навыки, полученные на лекциях, практических занятиях (факультет АВТ), лабораторных занятиях. Задания к РГР выдаются на позднее, чем за месяц до начала зачетной недели. Для защиты РГР студент должен предоставить преподавателю правильно и корректно работающие программы (на электронном носителе или на ЭВМ в компьютерном классе кафедры), пояснительную записку (пояснительная записка хранится на кафедре не менее одного учебного года), а так же ответить на все вопросы преподавателя по теме РГР.

Файлы: 1 файл

rgr.doc

— 1.66 Мб (Скачать файл)

While x<>y do

begin

If x>y then x:=x-y

else y:=y-x;

writeln(x:5,y:5)

end;

  • Не следует в одной строке записывать несколько операторов, кроме, может быть, простейших. В противном случае вы рискуете сильно усложнить отладку программы.
  • Объектам программы следует давать имена, отражающие их суть. Не избегайте длинных имен, если они помогают лучше понять смысл программы. За редким исключением не следует использовать однобуквенные имена вроде А, B и т.д.
  • Используйте комментарии для выделения в тексте логически завершенных фрагментов. Например:

{поиск минимального элемента в массиве}

Редактор выделяет ключевые слова языка программирования (BEGIN, END, IF, THEN, ELSE и др.) и текст комментариев цветом. Такое цветовое выделение облегчает чтение программы, помогает при поиске ошибок.

  1. Пример Расчетно-графической работы

Приведем пример оформления и выполнения Расчетно-графической  работы на некотором варианте.

5.1. Образец титульного листа

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    1.  Основная часть пояснительной записки

Задание 1.

Постановка  задачи.

Найти на заданном интервале [n,m] натуральное число, имеющее наибольшее количество делителей.

Решение.

1. 1. Составим алгоритм решения данной задачи.


1.2. Приведем используемые переменные.

имя

переменной

смысл

переменной

назначение

переменной

ограничения

n

нижняя граница интервала

исходная

целое число

m

верхняя граница  интервала

исходная

целое число

y

наибольшее  количество делителей

результат

целое число

col

количество  делителей для каждого числа в интервале [n,m]

промежуточная

целое число

k

натуральное число  с наибольшим количеством делителей

результат

целое число

i

число из интервала [n,m]

промежуточная

целое число

j

Значения делителя для числа i

промежуточная

целое число


 

1.3. Приведем текст программы:

 

PROGRAM U1;

Uses crt;

Var

k,n,m,i,j,col:integer;

begin

clrscr;

writeln(‘введите n,m’); y:=0;

readln(n,m);

for i:= n to m do

begin

col:=0;

for j:=1 to i-1 do

if i mod j = 0 then

col:=col+1;

if  col>y then begin

y:=col;

k:=i;

end;

end;

writeln(‘число = ’, k, ‘количество делителей=’,y);

readkey

end.

 

Задание 2.

Постановка  задачи.

Задана целочисленная  матрица А(3,4). Некоторый элемент  этого массива назовем седловой  точкой, если он является одновременно наименьшим в своей строке и наибольшим в своем столбце. Вывести на экран номер строки и столбца седловой точки матрицы А, если она есть и текст “Седловой точки нет”, если её нет.

Решение задачи.

Решение данной задачи разобьем на несколько этапов.

  1. Заполнение матрицы а (3,4) числами, вводимыми с клавиатуры.
  2. Для i-ой строки матрицы а определяется k – номер (индекс) столбца содержащего наименьший элемент.
  3. Проверяется, является ли элемент а [i, k] наибольшим в k-ом столбце (с = 0) – седловая точка или нет (с = 1).
  4. Если седловых точек нет (у = 0), то на экран выводится соответствующее сообщение.

2.1. Составим алгоритм решения данной задачи.

 

   

 

2.2. Рассмотрим  переменные, которые потребуются  для решения поставленной задачи.

имя

переменной

смысл

переменной

назначение

переменной

ограничения

а

 

исходная

целочисленная матрица

i

индекс строки элементов матрицы

промежуточная,

результат

целое число

j

индекс столбца  элементов матрицы

промежуточная

целое число

k

индекс  столбца наименьшего i- ой строки

промежуточная,

результат

целое число

l

индекс строк

промежуточная

целое число

y

 

промежуточная

целое число

c

 

промежуточная

целое число


 

2.3. Приведем текст программы:

 

PROGRAM zadanie2;

USES CRT;

Var

A:array[1 ..3,1 ..4] of integer;

i,j,l,k,c,y:integer;

begin

clrscr;

writeln(‘введите a(3,4)’);

for i:= 1 to 3 do

for j:=1 to 4 do read(a[i,j]);

y:=0;

for i:= 1 to 3 do

begin

k:=0;

for j:= 1 to 4 do

if a[i,j]<a[i,k] then k:=j;

c:=0;

for l:= 1 to 3 do

if a[l,k]>a[i,k] then c:=1;

if c=0 then

begin

writeln(‘седловая точка-’,a[i,k],

‘строка=’,i,’столбец’,k);

y:=1;

end;

end;

if y=0 then writeln(‘седловой точки нет’);

readkey;

end.

 

Задание 3.

Постановка  задачи

Вычислить z = Max1 + Max2, где

Max1 – наибольший элемент матрицы G(4,4);

Max2 – наибольший элемент матрицы T(2,2).

Матрица G(4,4) получена произведением матрицы А(3,4) на матрицу В(4,3). Матрица T(2,2) получена произведением матрицы С(2,3) на матрицу D(3,2).

Решение

3.1. В программе имеются следующие подпрограммы:

    • процедура VVOD –
    • процедура VIVOD –
    • процедура SR –
    • функция max –

Составим алгоритм решения данной задачи.

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

 

 

 

 

3.3. Рассмотрим  подробно все подпрограммы.

Подпрограмма VVOD. Эта подпрограмма реализована в виде процедуры и вызывается в тексте основной программы дважды. Процедура VVOD - ввод матрицы (заполнение числовыми данными, вводимыми с клавиатуры) для произвольной прямоугольной матрицы Х(n,m).

   

текст процедуры

 

PROCEDURE VVOD(Var X:matr; n,m:integer);

Var i,j:integer;

begin

for i:= 1 to n do

for j:=1 to m do read(X[i,j]);

end;

 

 

 

 

 

 

 

 

Подпрограмма SR. Эта подпрограмма, также, реализована в виде процедуры и вызывается в тексте основной программы дважды. Процедура SR - вычисление произведения двух произвольных прямоугольных матриц G и S размером L×N и N×M. Вычисления осуществляются по формуле:


текст процедуры

PROCEDURE SR(G,S:matr; L,N,M:integer;Var T:matr);

Var k,i,j:integer;

begin

for i:= 1 to L do

for j:=1 to M do

begin

T[i,j]:=0;

For k:=1 to N do T[i,j]:=T[i,j]+G[i,k]*S[k,j]l;

end;

end;

Подпрограмма VIVOD – процедура вывода произвольной прямоугольной матрицы y(k,l). Вызывается дважды. Алгоритм и его реализация аналогична процедуре VVOD:


PROCEDURE VIVOD(y:matr; n:integer);

Var i,j:integer;

begin

for i:= 1 to n do

begin

for j:=1 to n do write(y[i,j]:6:2,’  ’);

writeln;

end

end;

 

 

 

 

 

 

 

 

 

 

 

Подпрограмму Max. Эта подпрограмма реализована в виде функции. Обращение к функции Max осуществляется дважды.


function MaxM(x:matr; n:integer;): real;

Var i,j:integer;

max:real;

begin

max:=x[1,1];

for i:= 1 to n do

for j:= 1 to n do

if x[i,j]>max then max:=x[i,j];

Maxm:=max;

end;

 

 

Комментарий к программе:

Из основной программы данной функции передается массив х и его размер n×n. Так  как в функции элементы массива  не подвергаются изменению, то х передается функции как параметр-значение.

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

Приведем, теперь,  полностью текст основной программы. 

PROGRAM zadanie3;

USES CRT;

type

matr=array[1 ..4,1 ..4] of real;

Var

AB,CD,a,b,c,d: matr;

z: real;

PROCEDURE VVOD(Var X:matr; n,m:integer);

Var i,j:integer;

begin

for i:= 1 to n do

for j:=1 to m do read(X[i,j]);

end;

PROCEDURE VIVOD(y:matr; n:integer);

Var i,j:integer;

begin

for i:= 1 to n do

begin

for j:=1 to n do write(y[i,j]:6:2,’  ’);

writeln;

end

end;

PROCEDURE SR(G,S:matr; L,N,M:integer;Var T:matr);

Var k,i,j:integer;

begin

for i:= 1 to L do

for j:=1 to M do

begin

T[i,j]:=0;

For k:=1 to N do T[i,j]:=T[i,j]+G[i,k]*S[k,j]l;

end;

end;

function MaxM(x:matr; n:integer;): real;

Var i,j:integer;

max:real;

begin

max:=x[1,1];

for i:= 1 to n do

for j:= 1 to n do

if x[i,j]>max then max:=x[i,j];

Maxm:=max;

end;

begin

clrscr;

writeln(‘введите A(3,4)’);

VVOD (A,3,4);

writeln(‘введите В(4,3)’);

VVOD (B,4,3);

writeln(‘введите C(2,3)’);

VVOD (C,2,3);

writeln(‘введите D(3,2)’);

VVOD (D,3,2);

SR(A,B,3,4,3,AB);

SR(C,D,2,3,2,CD);

writeln(‘вывод АВ’);

VIVOD (AB,4);

writeln(‘вывод CD’);

VIVOD (CD,2);

z:=MaxM(AB,4)+MaxM(CD,2);

writeln(‘z=’, z:6:2);

end.

 

 

 

 

 

Оглавление

26 27

3


Информация о работе Цель и задачи расчетно-графической работы по информатике