Обчислювальна практика

Автор работы: Пользователь скрыл имя, 22 Марта 2012 в 23:50, доклад

Описание

В виконанні даної роботи для написання програм використовується дві алгоритмічні мови : Qbasic та Turbo Pascal.
Turbo Pascal вигідно відрізняється від інших алгоритмічних мов тим, що побудована на невеликій кількості базових понять, має простий синтаксис і здійснює транслювання програми в машинні коди відносно простим компілятором. Більш ефективний компілятор і редактор надають програмісту можливість проектувати складні програмні проекти.

Содержание

1.ВСТУП…………………………………………………………………………...3
2.Індивідуальні завдання………………………………………………………....4
3. ІНДИВІДУАЛЬНЕ ЗАВДАННЯ №1………………………………………....6
3.1.Блок-схема алгоритму розв'язування задачі №1……………………….6
3.2.Текст Basic- програми розв'язування задачі №1………………………… ..8
4. ІНДИВІДУАЛЬНЕ ЗАВДАННЯ №2………………………………………… 12
4.1.Текст Pascal –програми розв'язання задачі №2………………………… ..12
5.ІНДИВІДУАЛЬНЕ ЗАВДАННЯ №3…………………………………………...14
5.1. Текст Pascal –програми розв'язання задачі №3………………………….14
6. Приклади результату роботи программ………………………………………..20
6.1. Приклад результату роботи програми задачі №1…………………………20
6.2. Приклад результату роботи програми задачі №2………………………. ..22
6.3. Приклад результату роботи програми задачі №3…………………………23
ВИСНОВКИ………………………………………………………………………...24
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ……………………………………..25

Работа состоит из  1 файл

Обчимлювальна практика.doc

— 417.00 Кб (Скачать документ)


Мелітопольський державний педагогічний університет

Кафедра інформатики та кібернетики

 

 

                                   

 

 

Оцінка            ____________

Підпис викладача_________

 

 

 

 

 

ЗВІТ ПО ОБЧИСЛЮВАЛЬНІЙ ПРАКТИЦІ

 

 

                                                                                                         

                                                                                         Виконала:

                                                                                         студентка ІІ курсу

                                                                                         220 -i групи

                                                                                         факультету інформатики та

                                                                                          математики

                                                                                         Соболєва А.В

                                                                                          Перевірив:

                                                                                          Доц Лебедєв В.O

 

 

 

Мелітополь, 2010

ЗМІСТ

1.ВСТУП…………………………………………………………………………...3

2.Індивідуальні завдання………………………………………………………....4

3. ІНДИВІДУАЛЬНЕ ЗАВДАННЯ №1………………………………………....6

    3.1.Блок-схема алгоритму розв'язування задачі №1……………………….6

    3.2.Текст Basic- програми розв'язування задачі №1………………………… ..8

4. ІНДИВІДУАЛЬНЕ ЗАВДАННЯ №2…………………………………………  12

    4.1.Текст Pascal –програми розв'язання задачі №2………………………… ..12

5.ІНДИВІДУАЛЬНЕ ЗАВДАННЯ №3…………………………………………...14

    5.1. Текст Pascal –програми розв'язання задачі №3………………………….14

6. Приклади результату роботи программ………………………………………..20

    6.1. Приклад результату роботи програми задачі №1…………………………20

    6.2. Приклад результату роботи програми задачі №2………………………. ..22

    6.3. Приклад результату роботи програми задачі №3…………………………23

ВИСНОВКИ………………………………………………………………………...24

СПИСОК  ВИКОРИСТАНОЇ ЛІТЕРАТУРИ……………………………………..25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ВСТУП

В виконанні даної роботи для написання програм використовується дві алгоритмічні мови : Qbasic та Turbo Pascal.

Turbo Pascal вигідно відрізняється від інших алгоритмічних мов тим, що побудована на невеликій кількості базових понять, має простий синтаксис і здійснює транслювання програми в машинні коди відносно простим компілятором. Більш  ефективний компілятор і редактор надають програмісту можливість проектувати складні програмні проекти. Робота в середовищі мови Turbo Pascal забезпечується набором модулів, що містять бібліотеки стандартних модулів і функцій.

QBasic –– це проста мова  програмування, розроблена в  для використання новачками в програмуванні. Він був розроблений як найпростіша мова для безпосереднього спілкування людини з  обчислювальною машиною. Тому спочатку  робота велася в інтерактивному режимі з використанням інтерпретаторів. В теперешній час для цієї мови є також і компілятори.

Відповідно до концепцій, які закладені  в Basic, ця мова  в змісті  строгості й стрункості є антиподом мови Turbo Pascal.

 

 

 

 

 

 

 

 

 

 

 

 

 

ІНДИВІДУАЛЬНІ ЗАВДАННЯ

Варіант № 3

Завдання №1. Створити текстовий файл зі вхідними даними і побудувати діаграму, що відображає співвідношення значень згідно із завданням варіанту.

Стовпчикова діаграма: Вивести назву діаграми. Накреслити вертикальну вісь координат, нанести на неї шкалу ділень. Пронумерувати стовпчики та вказати об’єкти, які характеризуються відповідними стовпчиками. Стовпчики повинні бути різнокольоровими і можуть бути розташовані (за бажанням користувача) в порядку зростання або зменшення значень величини, які характеризуються данною діаграмою.

Технічне завдання : Створити текстовий файл з вихідними даними (формат файлу розробити самостійно), організувати зчитування даних з файлу у внутрішні масиви для подальшої обробки. (5)

Вивести та гарно оформити назву діаграми. (1)

Організувати можливість сортування даних за зростанням та за зменшенням, та режим показу без сортування. (5)

Передбачити візуальні компоненти (відповідність стовпчиків об’єктам, вісь координат , відсоткове співвідношення).(5)

         Вхідні дані:

«Найвищі гори світу»: Джомолунгма(8848м), Аконкагуа(6960м), Мак-Кінлі(6194м), Кіліманджаро(5895м), Монблан(4807).

Варіант №2

Завдання №2 Розкрити алгоритм і скласти програми табулювання функції з визначенням її існування. На екрані відобразити таблицю значень аргументів та функції і графічне вікно, що демонструє графік функції.

Технічне завдання

Реалізувати побудову графіку функції,що задана (10).

Передбачити побудову координатних вісей.(7)

Передбачити показ графіка і таблиці значень одночасно.(8)

 

Функція:               X[-10;10]     A=12

 

Варіант №6

           Завдання № 3. Скласти програми визначення місцезнаходженя п’ятнадцяти точок, що задані випадковими координатами На екрані відобразити таблицю з координатами точок і графічне вікно, що за бажанням користувача демонструє малюнок і точки або діаграму розташування точок (у заштрихованій області, на зовнішній чи внутрішній межі, за зовнішньою межею чи у внутрішній незаштрихованій області).

Технічні завдання

Реалізувати побудову області, що задана. На екрані відобразити таблицю з координатами точок і графічне вікно, що демонструє малюнок і розташування точок ( малюнок повинен містить вісі координат, та бути масштабованим на частину екрану).(10)

Вивести діаграму розташування точок.(7)

Перебачити показ діаграми і легенди одночасно.(8)

 

 

              R1=30;

              R2=15;

              X=[-36;34];

              Y=[-31;33];

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.2.Текст Paskal- програми розв'язування задачі №1

uses crt,graph;

const n=50;

var gd,gm,i,intt,code,stAng,a:integer;

    count:Real;

    lenMas:Word;

    T:string;

M:String;

    sek:array[1..n] of String;

    vol:array[1..n] of integer;

    f:text;

Begin

{=-=-=-=-=}

assign(f,'fileN.txt');

reset(f);

while (not eof(f)) do begin

      inc(i);

      Readln(f,sek[i]);  {nazvaniya sekciy}

      readln(f,M);

      val(M,vol[i],code); {perevod stroki v chisla}

      {if (code=0) then vol[i]:=intt; {chislovoy masiv}

end;

close(f);

 

lenMas:=i;

for i:=0 to lenMas do

    count:=count+vol[i];

 

gd:=Detect;

InitGraph(gd,gm,'');

 

if (count<>0)then count:=360/count;

For i:=1 to lenMas do

    Begin

    T:=sek[i]+' -'+m+'%';

      setfillstyle(1,i);

      pieslice(320,240,stAng,round(stAng+count*vol[i]),150);

      {bar(400,80+i*15,410,90+i*15); }

      str((count*vol[i])/3.6:2:1,M);

      outtextXY(round(260+230*cos((stang+count*vol[i]/2)*pi/180)),round(240+160*sin(-(stang+count*vol[i]/2)*pi/180)),sek[i]);

      outtextXY(round(300+240*cos((stang+count*vol[i]/2)*pi/180)),round(260+160*sin(-(stang+count*vol[i]/2)*pi/180)),M+'%');

   {   outtextXY(415,82+i*15,sek[i]+' -'+m+'M');   }

      stAng:=round(stAng+count*vol[i]);

    End;

setcolor(7);

circle(320,240,150);

readkey;

CloseGraph;

End.

 

 

 

 

 

4.ІНДИВІДУАЛЬНЕ ЗАВДАННЯ №2

4.1.Текст Basik-програми розв’язування задачі №2

CLS

DIM x1(21), y1(21)

a = 12

i = 1

FOR x = -10 TO 10

c = ABS(a * x * (1 + COS(2 * x)))

d = LOG((a - x) * (1 + COS(x)))

IF COS(x) = 1

THEN PRINT "resheniy net"

ELSE

y1(i) = x ^ 2 * ((SQR(c)) / d)

x1(i) = x

PRINT x, y1(i)

END IF

i = i + 1

NEXT x

 

    PRINT "„«п ўл室  ­ ¦¬ЁвҐ Esc..."

    DO

    LOOP UNTIL INKEY$ = CHR$(27)    '27 - нв® ASCII Є®¤ ¤«п Esc.

CLS

SCREEN (12)

LOCATE 2, 43

PRINT "y"

LOCATE 16, 80

PRINT "x"

LOCATE 16, 40

PRINT "0"

LOCATE 17, 43

PRINT "1"

LOCATE 17, 46

PRINT "2"

LOCATE 17, 48

PRINT "3"

LOCATE 17, 50

PRINT "4"

LOCATE 17, 43

PRINT "1"

LOCATE 17, 53

PRINT "5"

LOCATE 17, 56

PRINT "6"

LOCATE 17, 58

PRINT "7"

LOCATE 17, 60

PRINT "8"

LOCATE 17, 63

PRINT "9"

LOCATE 17, 65

PRINT "10"

LOCATE 17, 37

PRINT "-1"

LOCATE 17, 34

PRINT "-2"

LOCATE 17, 32

PRINT "-3"

LOCATE 17, 29

PRINT "-4"

LOCATE 17, 27

PRINT "-5"

LOCATE 17, 24

PRINT "-5"

LOCATE 17, 22

PRINT "-6"

LOCATE 17, 19

PRINT "-7"

LOCATE 17, 17

PRINT "-8"

LOCATE 17, 14

PRINT "-9"

LOCATE 17, 11

PRINT "-10"

LOCATE 3, 43

PRINT "1000"

 

LOCATE 6, 43

PRINT "800"

 

 

LOCATE 8, 43

PRINT "600"

LOCATE 10, 43

PRINT "400"

LOCATE 13, 43

PRINT "200"

LOCATE 18, 43

PRINT "-200"

LOCATE 21, 43

PRINT "-400"

LOCATE 23, 43

PRINT "-600"

LOCATE 26, 43

PRINT "-800"

LOCATE 17, 43

PRINT "1"

LINE (320, 10)-(320, 460), 15

LINE (10, 240)-(630, 240), 15

LINE (320, 10)-(310, 20), 15

LINE (320, 10)-(330, 20), 15

LINE (630, 240)-(620, 230), 15

LINE (630, 240)-(620, 250), 15

FOR i = 1 TO 29

LINE (310, i * 20)-(330, i * 20)

NEXT i

FOR j = 1 TO 40

LINE (j * 20, 230)-(j * 20, 250)

NEXT j

t = 9

FOR i = 1 TO 21

CIRCLE (320 + x1(i) * 20, 240 - y1(i) / t), 2, 4

NEXT i

 

FOR i = 1 TO 20

LINE (320 + x1(i) * 20, 240 - y1(i) / t)-(320 + x1(i + 1) * 20, 240 - y1(i + 1) / t), 4

NEXT i

 

 

 

5.ІНДИВІДУАЛЬНЕ ЗАВДАННЯ №3

5.1. Текст Pascal –програми розв'язання задачі №3

 

uses graph,crt;

type

ms=array[1..15,1..3] of integer;

tock=record

xy:integer;

pop:integer;

end;

 

const

mg=3;

x0=230;

y0=250;

r=15;

r1=30;

var

t:array[1..5,1..2] of real;

u,i,vn,nl,nl2,ng,zg,dr,md,k,x,y,j,j1,l:integer;

t1,w:real;

vn1,nl1,nl3,ng1,zg1,x1,y1,x2,y2,z:string;

toc:tock;

mas:ms;

 

procedure  tocka(x1,y1,n:integer);

begin

putpixel(x0+x1*mg,y0-y1*mg,n);

setcolor(n);

circle(x0+x*mg,y0-y*mg,2);

end;

 

function gr(a:real):string;

var s,n:real; m:string;

begin

n:=(a/360*15);

s:=(n/15*100);

str(s:2:1,m);

gr:=m;

end;

 

procedure tab(mas1:ms);

begin

setcolor(7);

for i:=0 to 16 do

line(400,5+15*i,630,5+15*i);

for i:=0 to 2 do

line (400+50*i,5,400+50*i,245);

line(630,5,630,245);

outtextxy(420,10,'x');

outtextxy(470,10,'y');

outtextxy(510,10,'Sostoyanie');

 

for i:=1 to 15 do

begin

str(mas1[i,1],x2);

str(mas1[i,2],y2);

setcolor(mas1[i,3]);

outtextxy(420,10+i*15,x2);

outtextxy(470,10+i*15,y2);

if mas1[i,3]=9 then begin

outtextxy(510,10+i*15,'vnutri');

end;

 

if mas1[i,3]=2 then begin

outtextxy(510,10+i*15,'na vnesh linie');

end;

 

if mas1[i,3]=3 then begin

outtextxy(510,10+i*15,'na grafiku');

end;

 

if mas1[i,3]=4 then begin

outtextxy(510,10+i*15,'za graficom');

end;

 

if mas1[i,3]=10 then begin

outtextxy(510,10+i*15,'na vnutr linie');

end;

end;

 

 

end;

 

begin

randomize;

dr:=detect;

initgraph(dr,md,'');

setcolor(3);

circle(x0,y0,r1*mg);

circle(x0+r*mg,y0,r*mg);

 

setfillstyle(3,7);

floodfill(x0-5,y0,3);

setcolor(15);

 

line (x0-55*mg,y0,x0+55*mg,y0);

outtextxy(x0+55*mg,y0+5+mg,'x');

line (x0,y0-55*mg,x0,y0+55*mg);

outtextxy(x0+5*mg,y0-55*mg,'y');

line(x0+55*mg,y0,x0+55*mg-3*mg,y0+3*mg);

line(x0+55*mg,y0,x0+55*mg-3*mg,y0-3*mg);

line(x0,y0-55*mg,x0-3*mg,y0-55*mg+3*mg);

line(x0,y0-55*mg,x0+3*mg,y0-55*mg+3*mg);

 

for i:=0 to 8 do begin

    line(x0-40*mg+10*i*mg,y0+3*mg,x0-40*mg+10*i*mg,y0-3*mg);

    line(x0+3*mg,y0-40*mg+10*i*mg,x0-3*mg,y0-40*mg+10*i*mg);

end;

 

setcolor(2);

 

 

for i:=1 to 15 do begin

mas[i,1]:=-36+random(71);

mas[i,2]:=-31+random(65);

x:=mas[i,1];

y:=mas[i,2];

j:=(x*x)+(y*y);

j1:=(x-r)*(x-r)+(y*y);

 

if ( ((y<r)and(y>-r))and(x>0)and(x<2*r)and(j1<sqr(r)) ) then

begin

mas[i,3]:=9; {tocka leshyt wnutri}

vn:=vn+1;

end

 

else if j=(sqr(r1)+10) then

begin

mas[i,3]:=2; {tocka leshyt na vneshnej granice}

nl:=nl+1;

end

else if  j1=(sqr(r)+5) then begin

mas[i,3]:=10; {tocka leshyt na vnutrennej granice}

nl2:=nl2+1;

end

 

else if (j>sqr(r1)) then begin

mas[i,3]:=4; {tocka leshyt za grafikom}

zg:=zg+1;

end

 

else begin

mas[i,3]:=3; {tocka leshyt na shtrihovke}

ng:=ng+1;

end;

tocka(x,y,mas[i,3]);

 

end;

tab(mas);

 

 

{-------------}

str(vn,vn1);

str(nl,nl1);

str(ng,ng1);

str(zg,zg1);

 

readln;

repeat

cleardevice;

setcolor(15);

outtextxy(160,10,'Wywesti krugowuju diagramu?(Y-yes,N-no)');

readln(z);

until (z='Y')or(z='y')or(z='N')or(z='n');

 

if (z='Y')or(z='y') then begin

cleardevice;

tab(mas);

setcolor(15);

setfillstyle(1,9);

bar(400,270,410,280);

outtextxy(420,270,'- tocki vnutri grafika');

 

setfillstyle(1,2);

bar(400,295,410,305);

outtextxy(420,295,'- tocki na vnesh granice');

 

setfillstyle(1,10);

bar(400,320,410,330);

outtextxy(420,320,'- tocki na vnutr granice');

 

setfillstyle(1,3);

bar(400,345,410,355);

outtextxy(420,345,'- tocki na grafiku');

 

setfillstyle(1,4);

bar(400,370,410,380);

outtextxy(420,370,'- tocki za grafikom');

t[1,1]:=(vn*360)/15;

t[1,2]:=9;

t[2,1]:=(nl*360)/15;

t[2,2]:=2;

t[3,1]:=(nl2*360)/15;

t[3,2]:=10;

t[4,1]:=(ng*360)/15;

t[4,2]:=3;

t[5,1]:=(zg*360)/15;

t[5,2]:=4;

setcolor(7);

t1:=0;

l:=9;

for i:=1 to 5 do begin

t1:= t1+t[i,1];

setfillstyle(1,round(t[i,2]));

if t[i,1]>1 then

pieslice(x0,y0,round(t1-t[i,1]),round(t1),100);

x:=x0-20+round((100  +20)* cos((t1-(t[i,1]/2))*pi/180));

y:=y0-round((100 +20)* sin((t1-(t[i,1]/2))*pi/180));

w:=t[i,1];

if w<> 0 then

outtextxy(x,y,gr(w)+'%');

end;

readkey;

end;

end.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.Приклади результату роботи программ

6.1.          Приклад результату роботи програми задачі №1

Информация о работе Обчислювальна практика