Лабораторная работа №17. Контрольная работа «Строковые величины и двумерные массивы».
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Цель: проверка знаний студентов, навыков самостоятельного решения задач и умения применять полученные знания на практике.

Студентам предлагаем несколько вариантов работы, в каждом из которых две задачи.

Вариант 1.

1. Имеется двумерный массив целых положительных чисел. Найти номер строки, для которой среднеарифмети­ческое значение ее элементов максимально.

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

Вариант 2.

1. Найти номер строки и столбца двумерного массива для максимального элемента этого массива.

2. Написать программу, которая введенное с клавиатуры слово напечатает следующим образом:

школа  

к л

О  о

л л

алокш

Вариант 3.

1. Найти сумму элементов двумерного массива вещест­венных чисел с(15,15), расположенных на главной диаго­нали.

. 2. Написать программу, которая перевернет введенное с клавиатуры слово или фразу.

Домашнее задание на данном уроке не задается.


Лабораторная работа №17. Анализ самостоятельной работы. Работа над ошибками.

Цель: проанализировать наиболее характерные ошиб­ки, развивать навыки самостоятельного анализа проблем и выбора метода их решения.

Ход урока:

На данном уроке необходимо проанализировать ошибки, допущенные студентами в ходе выполнения самостоятельной работы, разобрать причины, вызвавшие эти ошиб­ки. Провести работу по исправлению допущенных ошибок. В том случае, если с какой-либо из задач не справилось большинство учащихся, ее выполнявших, то целесообразно привести решение этой задачи на доске с подробным ана­лизом решения.'

После исправления ошибок предлагаем учащимся про­верить работу их программ на компьютере (провести тес­тирование программ).

Примерные варианты решения задач:


Вариант 1.

1. program vll; uses crt;

var a:array[1..50,1..50] of integer; i,j,n,m,s,k:integer; sr:real; begin clrscr;

write('ввeдитe количество строк и столбцов'); readln (m,n); randomize; for i:=l to m do for j:=l to n do a[i,j]:=random(50); clrscr;

writeln ('исходный массив'); for i:=l to m do

begin forj:=l to ndo write(a[ij]:4); writeln; end; sr:=-5; {так как массив положительных чисел}

writeln; for i:=l to mdo \ begin .^' s:=0; ' forj:=l to ndo

J s:=s-i-a[i,j]; writeln(s/n:6:2); {распечатка средних арифметических для контроля} ifs/n>sr then begin

sr:=s/n; k:=i; end; end;

writeln;

writeln('иcкoмaя строка-' ,k); repeat until keypressed; end.

2.program vl 2;

uses crt;

var fr,bukv,z:string; a:array[l..32] of integer;

i,k: integer;

{определение номера буквы}

procedure por(var znach: integer;x:string;bukv:string); • var i: integer;

begin

znach:=0

i:=l;

while (i<=32) and (znach=0) do

if x=copy(bukv,i, 1) then znach:=i

else i:=i+l; end;

{исполняемая часть} begin clrscr;

wгiteln('ввeдитe фразу'); readln(fr);

Ьику:='абвгдежзийклмнопрстуфхцчшщъыьэюя'; for i:=l to 32 do a[i]:=0; for i:=l to length(fr) do begin por(k,copy(fr,i,l),bukv); {просмотр фразы и определение вхождения}

ifk>Othena[k]-a[k]+l;

end; writeln;

write ('абвгдежзийклмнопрстуфхцчшщъэюя'); writeln;

for i:=l to 32 do write(a[i]:2); repeat until keypressed; end.

Вариант 2.

1. program v21; uses crt;

vara:array[1..50,1..50] of real; i,j,n,m,k,l:integer; max:real;

begin : clrscr;

write('ввeдитe размер массива m,n'); readln(m,n); randomize; I for i:=l to mdo r forj:-l to n do ' a[ij]:=random(50); ' clrscr;

; writpln ('исходный массив'); 1; for i:=l to mdo •:■  begin

       for j:=l ton do

       write(a[ij]:6:2);

       writeln;

end; max:=a[l,ll;

for i:=l to m do

forj.-l ton do

if max<a[i,j] then begin

max:=a[i,j];k:=i;l:=j; end;

writeln('мaкcимaльный элемент равен ',max:6:2,');

writeln( 'oh находится в ', к,'строке ', 1 'столбце');

repeat until keypressed;

end.

2.

program v22; uses crt;

yar fr:string;i,n,k:integer; begin clrscr

writeln('ввeдитe слово'); ; read(fr); gotoxy(4,12); write(fr);

for i:=2 to length(fr) do begin gotoxy (4,11 +i); write(copy(fr,i, 1)) gotoxy(4+length(fr)-l ,11+i); write(copy(fr,length(fi-)-i+1,1)); end; for i:=2 to length(fr)-l do begin

gotoxy(3+i,l l+length(fr)); write(copy(fr,length(fr)-i+l,l)); end; repeat until keypressed; end.

Вариант 3.

1. program v31;

uses crt;                                      ,

var c:array[1..15,1..15] ofreal; ij:integer; s:real; begin clrscr; randomize; for i:=l to 15 do forj:=l to 15 do c[i,j]:=random(50); clrscr;

writeln ('исходный массив'); for i:=l to 15 do begin

forj:=l to 15 do

write(c[i,j]:6:2);

writeln; end; s:=0; fori:=l to 15 dp

s:=s+c[i,i];                                          '

writeln('Искомая сумма-,s: 10:2); repeat until keypressed; end.

2.

programv32 uses crt;

var fr:string;i: integer; begin

clrscr;                                                                              .

vvrite('BBeflHTe слово или фразу'); readln(fr); writeln;

for i:=l to length(fr) do write(copy (fr,length(fr)-i+1,1)); repeat until keypressed; end.

Домашнее задание: повторить основные типы данных, строковые, массивы.



Дата: 2019-12-22, просмотров: 291.