Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

066536 / 389, 444, 345, 485, 866, 951

.doc
Скачиваний:
30
Добавлен:
09.06.2015
Размер:
186.37 Кб
Скачать

Задание 1 (№345)

Условие:

Пусть

Получить .

Блок-схема к задаче №345

t [0] := 1

t [k] := 0

t [k] := t [k] + t [i] * t [k - i - 1];

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

Program N345;

Const

cSeqMax = 10;

Type

TSeq = array [0..cSeqMax] of LongInt;

Var

t : TSeq;

k : Byte;

i : Byte;

Begin

t [0] := 1;

for k := 1 to cSeqMax do

begin

t [k] := 0;

for i := 0 to k - 1 do

t [k] := t [k] + t [i] * t [k - i - 1];

end;

writeln ('t (10) = ', t [10]);

End.

writeln ('t (10) = ', t [10]);

End.

Отчёт:

t (10) = 16796

Задание 2 (№389)

Условие:

Дана действительная матрица размера m X n, все элементы которой различны. В каждой строке выбирается элемент с наименьшим значением, затем среди этих чисел выбирается наибольшее. Указать индексы элементы с найденным значением.

Блок-схема к задаче №389

First:=True

a[i,j]:=random(256)

min:=a[y,x]

minx:=1

miny:=y

maxX:=minx

maxY:=minY

First:=false

min:=a[y,x];

minx:=x;

miny:=y;

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

Program N389;

Var a:array[1..100,1..100] of real;

x,y,m,n:Integer;

First:Boolean;

Min,Max:Real;

MinX,MinY,MaxX,MaxY:Integer;

Begin

writeln('Vvedite m, n');

readln(m,n);

For y:=1 to n do

For x:=1 to m do

Begin

a[x,y]:=random(256);

Writeln(a[y,x]:5:2);

end;

First:=True;

For y:=1 to n do

begin

min:=a[y,1];

minx:=1;

miny:=y;

For x:=1 to m do

if (min>a[y,x]) then

begin

min:=a[y,x];

minx:=x;

miny:=y;

end;

if (First)or(Max<min) then

Begin

Max:=min;

MaxX:=minx;

MaxY:=miny;

First:=false;

end;

end;

Writeln('Max element is ',max:5:2,' and indexes is X-',maxx,', Y-',maxy);

readln;

end.

Отчёт1:

Vvedite m, n

3

3

----

0.00 0.00 0.00

8.00 69.00 0.00

220.0 171.00 95.00

Max element is 95.00, and indexes X-3, Y-3

Отчёт2:

Vvedite m, n

2

2

----

0.00 0.00

8.00 51.00

Max element is 8.00, and indexes X-1, Y-2

Задача 3 (№485)

Условие:

Дан символьный файл f. Записать в файл g компоненты файла f в обратном порядке.

Блок-схема к задаче №389

Открытие файлов

a:=’ ‘

a:= a+s[i]

Закрытие файлов

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

program lab3;

var fp, f:text;

s,a:string;

i:integer;

begin

assign(fp,'c:\f.txt');

reset(fp);

assign(f,'c:\g.txt');

rewrite(f);

read(fp,s);

a:='';

for i:=length(s) downto 1 do

a:=a+s[i];

write(f,a);

close(fp);

close(f);

end.

1.Отчёт:

Какая интересная книга.

.агинк яансеретни яакаК

2.Отчёт:

Мощная гидроэлектростанция была взорвана!!!

!!!анаврозв алыб яицнатсорткелэордиг яанщоМ

Задача 4 (№866В)

Условие:

Начертить узор, составленный из шестиугольников. Узор образован 20 вложенными квадратами. Стороны первого квадрата параллельны осям координат экрана и равны 60. Вершины каждого последующего квадрата - это точки на сторонах квадрата, делящие эти стороны в отношении н(Ню)=0.08

Блок-схема к задаче №866В

top:= 20;

left:=20;

moveto(l-dx+left,dy+top);

lineto(dy+left,dx+top);

l:=60;

dx:=0

dy:=0

lineto(dx+left,l-dy+top); lineto(l-dy+left,l-dx+top);

lineto(l-dx+left,dy+top);

n:=20

nu:=0.08

dx1:=dx+round((l-dx-dy)*nu);

dy1:=dy+round((dx-dy)*nu);

dx:=dx1;

dy:=dy1;

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

Program N866V;

uses GraphABC;

Var z,dx, dy,dx1,dy1,l,n,i,gd,gm,top,left:integer;

a,nu:real;

procedure drawsq(dx,dy,l:integer);

begin

moveto(l-dx+left,dy+top);

lineto(dy+left,dx+top);

lineto(dx+left,l-dy+top) ;

lineto(l-dy+left,l-dx+top);

lineto(l-dx+left,dy+top);

end;

begin

top:=20; left:=20;

l:=60;

dx:=0; dy:=0;

n:=20;

nu:=0.08;

drawsq(dx,dy,l);

for i:=2 to n do begin

dx1:=dx+round((l-dx-dy)*nu);

dy1:=dy+round((dx-dy)*nu);

dx:=dx1;

dy:=dy1;

drawsq(dx,dy,l);

end;

readln;

end.

Отчет:

Рис.1

Рис.2

Полученный результат.

Задача 5 (№951)

Условие:

Круглое кольцо вращается с постоянной угловой скоростью, вокруг своего диаметра, расположенного параллельно горизонтальной оси экрана. Изобразить на экране процесс вращения. Считать, что в момент времени t кольцо выглядит для наблюдателя как эллипс, большая ось которого равна постоянной величине С, а малая равна С|coswt| где w-угловая скорость вращения. В правой части рис.101 приведено несколько последовательных изображений кольца, возникающих через равные промежутки времени. В левой части рисунка кольцо изображено сбоку.

Блок-схема к задаче №951

dy:=0

Ellipse(275,125-abs(round(R*cos(dy*pi/180))),475,125+abs(round(R*cos(dy*pi/180))));

Line(round(R*cos((dy+90)*pi/180))+125,

round(R*sin((dy+90)*pi/180))+125,

round(R*cos((dy-90)*pi/180))+125,

round(R*sin((dy-90)*pi/180))+125);

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

Program N951;

uses

crt,graphABC;

const

R=100;

var

dx,dy:integer;

begin

SetWindowCaption('pic. 101');

SetWindowSize(500,250);

dy:=0;

repeat

Ellipse(275,125-abs(round(R*cos(dy*pi/180))),475,125+abs(round(R*cos(dy*pi/180))));

Line(round(R*cos((dy+90)*pi/180))+125,

round(R*sin((dy+90)*pi/180))+125,

round(R*cos((dy-90)*pi/180))+125,

round(R*sin((dy-90)*pi/180))+125);

delay(40);

ClearWindow;

dY:=(dY+1)mod 360;

until KeyPressed;

readKey;

end.

Отчет:

Рис. 3

Рис.4

Задача 6 (№444)

Условие:

Даны натуральное число n, действительные числа Найти площадь n-угольника, вершины которого при некотором последовательном обходе имеют координаты (Определить процедуру вычисления площади треугольника по координатам его вершин.)

Блок-схема к задаче №444

x[i]:= random(20) - 10;

y[i]:= random(20) - 10;

res:=0;

a1:= sqrt(sqr(x2-x1) + sqr(y2-y1));

a2:= sqrt(sqr(x3-x2) + sqr(y3-y2));

a3:= sqrt(sqr(x1-x3) + sqr(y1-y3));

p:= (a1 + a2 + a3) / 2;

square:= sqrt(p * (p-a1) * (p-a2) * (p-a3));

res:=res+temp;

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

Program N444;

function square(x1, y1, x2, y2, x3, y3: integer):real;

var

a1, a2, a3, p: real;

begin

a1:= sqrt(sqr(x2-x1) + sqr(y2-y1));

a2:= sqrt(sqr(x3-x2) + sqr(y3-y2));

a3:= sqrt(sqr(x1-x3) + sqr(y1-y3));

p:= (a1 + a2 + a3) / 2;

square:= sqrt(p * (p-a1) * (p-a2) * (p-a3));

end;

const

n = 20;

var

x, y: array[1..n] of integer;

temp,res: real;

i: integer;

begin

randomize;

for i:= 1 to n do

begin

x[i]:= random(20) - 10;

y[i]:= random(20) - 10;

end;

res:=0;

for i:= 3 to n do

begin

writeln(' Координаты треугольника', i-2, ': ', x[1]:4, y[1]:4, x[2]:4, y[2]:4, x[i]:4, y[i]:4);

temp:= square(x[1], y[1], x[2], y[2], x[i], y[i]);

res:=res+temp;

writeln('Площадь треугольника ', i-2, ' = ', temp:10:2);

writeln;

end;

writeln('Общая площадь равна: ',res);

readln;

end.

Отчет:

Координаты треугольника1: -5 8 -3 7 -9 -10

Площадь треугольника 1 = 20.00

Координаты треугольника2: -5 8 -3 7 -5 -10

Площадь треугольника 2 = 18.00

Координаты треугольника3: -5 8 -3 7 -8 -8

Площадь треугольника 3 = 17.50

Координаты треугольника4: -5 8 -3 7 3 0

Площадь треугольника 4 = 4.00

Координаты треугольника5: -5 8 -3 7 -6 -6

Площадь треугольника 5 = 14.50

Координаты треугольника6: -5 8 -3 7 -9 -4

Площадь треугольника 6 = 14.00

Координаты треугольника7: -5 8 -3 7 -3 9

Площадь треугольника 7 = 2.00

Координаты треугольника8: -5 8 -3 7 7 8

Площадь треугольника 8 = 6.00

Координаты треугольника9: -5 8 -3 7 4 -1

Площадь треугольника 9 = 4.50

Координаты треугольника10: -5 8 -3 7 8 2

Площадь треугольника 10 = 0.50

Координаты треугольника11: -5 8 -3 7 9 -4

Площадь треугольника 11 = 5.00

Координаты треугольника12: -5 8 -3 7 2 0

Площадь треугольника 12 = 4.50

Координаты треугольника13: -5 8 -3 7 2 -2

Площадь треугольника 13 = 6.50

Координаты треугольника14: -5 8 -3 7 0 -9

Площадь треугольника 14 = 14.50

Координаты треугольника15: -5 8 -3 7 9 -8

Площадь треугольника 15 = 9.00

Координаты треугольника16: -5 8 -3 7 5 -3

Площадь треугольника 16 = 6.00

Координаты треугольника17: -5 8 -3 7 9 5

Площадь треугольника 17 = 4.00

Координаты треугольника18: -5 8 -3 7 9 1

Площадь треугольника 18 = 0.00

Общая площадь равна: 150.5

Список литературы.

1.Абрамов С.А. Задачи по программированию / Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н. Задачи по программированию.- М.: Наука,1988.

2.Семакин И.Г. Основы программирования / Семакин И.Г., Шестаков А.П. Основы программирования – 2-е изд., стер. – М.: Изд. центр “Академия”, 2003. – 432 с.

3.Епанешников А.М. Программирование в среде TURBO PASCAL 7.0. / Епанешников А.М., Епанешников В.А. Программирование в среде TURBO PASCAL 7.0. – 3-е изд., стер. – М.: ДИАЛОГ - МИФИ, 1996. – 288 с.

4.Алексеев В.Е., Ваулин А.С. Практикум по программированию: Практ. Пособие для вузов // Электронные вычислительные машины: В 8 кн. 2-е изд., перераб. И доп. – М.: Высш. Шк., 1993. Кн. 7. – 207 с.

5. Программирование в системах TURBO BASIC и TURBO PASCAL: Методические указания к лабораторным работам 10 – 16 / Составители А.Н. Ильгачев, А.И. Козлов; Чуваш. Ун-т. Чебоксары, 2004.

6. Программирование в системах TURBO BASIC и TURBO PASCAL: Методические указания к лабораторным работам 17 - 20 / Составители А.Н. Ильгачев, А.И. Козлов; Чуваш. Ун-т. Чебоксары, 2004

Соседние файлы в папке 066536