Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
марат информатика 1 семестр.doc
Скачиваний:
14
Добавлен:
01.05.2019
Размер:
985.6 Кб
Скачать

Выполнение лабораторной работы №6.

Алгоритм решения задачи

Текст программы.

Program N6;

Uses crt;

Var n1,n2,n3,i,dalshe:integer;

a,b,z:real;

Function y1(x:real):real;

begin

y1:=2+38*sqrt(1-sqr((x-13.032)/23));

end;

Function y2(x:real):real;

begin

y2:=-0.72*x+14.81;

end;

Function Pryamoug(n:integer):real;

var xh,y,h,S:real;

i:integer;

begin

h:=(b-a)/n;

xh:=a;

S:=0;

for i:=0 to n-1

do

begin

if (xh<z)

then y:=y1(xh)

else y:=y2(xh);

S:=S+y*h;

xh:=xh+h;

end;

Pryamoug:=S;

end;

Function Trapec(n:integer):real;

var x,y,h,S:real;

i:integer;

begin

h:=(b-a)/n;

x:=a;

S:=h*(y1(a)+y2(b))/2;

for i:=1 to n-1

do

begin

if (x<z)

then y:=y1(x)

else y:=y2(x);

S:=S+y*h;

x:=x+h;

end;

Trapec:=S;

end;

Function Simpson(n:integer):real;

var x,y,yy,h,S:real;

i:integer;

begin

h:=(b-a)/n;

x:=a;

S:=h*(y1(a)+y2(b))/6;

for i:=1 to n-1

do

begin

if (x<z)

then

begin

y:=y1(x);

yy:=y1(x+h/2);

end

else

begin

y:=y2(x);

yy:=y2(x+h/2)

end;

S:=S+(2*y+4*yy)*h/6;

x:=x+h;

end;

Simpson:=S;

end;

Label start;

Begin

start:

clrscr;

a:=-9.936;

z:=-7.225;

b:=0;

writeln('‚Введите n1');

Read(n1);

writeln(' Введите n2');

Read(n2);

writeln(' Введите n3');

Read(n3);

writeln('____________________________________________________');

writeln('| Число разбиения | Результат |');

writeln('| |_____________________________|');

writeln('| n | A | B | C |');

writeln('|____________________|_________|_________|_________|');

writeln('| ',n1:8,' |',Pryamoug(n1):8:4,' |', Trapec(n1):8:4,' |', Simpson(n1):8:4,' |');

writeln('| ',n2:8,' |',Pryamoug(n2):8:4,' |', Trapec(n2):8:4,' |', Simpson(n2):8:4,' |');

writeln('| ',n3:8,' |',Pryamoug(n3):8:4,' |', Trapec(n3):8:4,' |', Simpson(n3):8:4,' |');

writeln('|____________________|___________________|_________|');

readkey;

Writeln('Повторить? (1/0)');

Read(dalshe);

If (dalshe=1)

then goto start;

Работа программы.

Лабораторная работа №7.

Тема. Массивы. Множества. Работа с псевдослучайными последовательностями (ПСП). Работа с цветом.

Задание. С помощью ПСП сформировать двухмерный MxN массив из элементов. В качестве элементов использовать слова из K..L символов A..Z (одномерный массив символов латинского алфавита). Осуществить подсчет элементов, удовлетворяющих условиям задания. Проверку заданных условий поиска реализовать с использованием типа множества. Вывести на экран сформированный массив в виде таблицы, выделив цветом подсчитанные элементы. Результат подсчета вывести на экран в отдельном окне.

(Здесь: M и N - соответственно число строк и столбцов формируемой

таблицы; K и L - соответственно минимальное и максимальное число букв в формируемых словах - элементах массива).

Методические указания

При формировании массива использовать стандартные подпрограммы ПСП - Random, Randomize, а также, возможно использование функции CHR. Коды ASCII символов A..Z - 65..90. Слова формируются в одномерных массивах, каждый из которых состоит из L ячеек; буквы записываются без пробела, начиная с первой ячейки.

Незаполненные буквами позиции массива в конце слов заполнить символами пробела - код ASCII - 32.

Для вывода на экран строки заданного цвета необходимо:

- в программе указать об использовании модуля CRT (USES CRT; - эта

директива должна присутствовать в начале текста программы).

- перед использованием стандартной процедуры вывода необходимо задать

цвет вывода соответствующим значением параметра X стандартной процедуры TextColor(X).

Данные.

Вариант 5

Выделить цветом подсчитать число слов, удовлетворяющих следующим условиям.

  1. Первая и последняя буквы в слове – согласные.

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

K=2, L=7, M=20, N=10

Выполнение лабораторной работы №7.

Алгоритм решения задачи.

Текст программы.

Program N7;

Uses CRT;

Var m,n,k,l,kolbukv,i,j,t,kolslov:integer;

sl:string;

bukva:integer;

slova:array[1..20, 1..10] of string;

Function Proverka(slovo:string; stolb:integer):boolean;

var p,q,kolglas:integer;

usl1, usl2:boolean;

glasnye:set of char;

begin

glasnye:=['a','e','i','o','u','y',

'A','E','I','O','U','Y'];

usl1:=false;

usl2:=false;

if (

not(slovo[length(slovo)] in glasnye))

then usl1:=true;

if (usl1)

then Proverka:=true

else Proverka:=false;

end;

Begin

clrscr;

randomize;

m:=20;

n:=10;

k:=2;

l:=7;

textcolor(white);

for i:=1 to m do

for j:=1 to n do

begin

kolbukv:=2+random(6);

sl:='';

for t:=1 to kolbukv do

begin

bukva:=65+random(26);

sl:=sl+chr(bukva);

end;

slova[i,j]:=sl;

end;

writeln('Tablitsa:');

kolslov:=0;

for i:=1 to m do

begin

for j:=1 to n do

begin

if (Proverka(slova[i,j],j)and (i mod 3=0))

then

begin

textcolor(green);

kolslov:=kolslov+1;

end

else textcolor(red);

write(slova[i,j]:8);

end;

end;

textcolor(red);

Write('Выделенных слов: ',kolslov);

readkey;

End.