| Texnar | Дата: Суббота, 05.01.2008, 22:07 | Сообщение # 1 |
 Знакомый
Группа: Пользователи
Сообщений: 16
Статус: Offline
| Как и обещал в этой теме буду выкладывать задачи. К сожалению в этом семе я немного не успел с задачами на лабах. Но мне не нпомешало сдать экзамен досрочно. Так что буду выкладывать по поступлению так сказать. Добавлено (05.01.2008, 15:04) --------------------------------------------- С клавиатуры вводятся координаты трех точек. Необходимо: 1. выяснить существует ли треугольник с такими вершинами. Если существует, то найти: 2. стороны 3. периметр 4. площадь 5. углы 6. высоты 7. медианы 8. биссектрисы Решить задачу используя процедуры и функции. Code program treug; procedure vvod(var x,y:real); begin writeln('vvedite x'); readln(x); writeln('vvedite y'); readln(y); end;
procedure storona (x1,x2,y1,y2:real; var st:real); begin st:=sqrt(sqr(x1-x2)+sqr(y1-y2)); end;
procedure ugl(pril_storona1,pril_storona2,prot_storona:real; var ug:real); var c_ug:real; begin c_ug:=(sqr(pril_storona1)+sqr(pril_storona2)-sqr(prot_storona))/(2*pril_storona1*pril_storona2); if c_ug<>0 then
ug:=arctan(sqrt(1-sqr(c_ug))/c_ug) else ug:=pi/2; end;
procedure mediana(var m:real; a,b,u:real); begin m:=sqrt(a*a/4+b*b-a*b*cos(u)); end;
procedure bissectrisa(x,y:real; ug:real; var b:real); begin b:=2*x*y*cos(ug/2)/(x+y); end;
procedure visota(var h:real; s,st:real); begin h:=2*s/st; end;
procedure perimetr(a,b,c:real; var p:real); begin p:=a+b+c; end;
procedure ploshad(a,b,c:real; var s:real); var pp:real; begin pp:=(a+b+c)/2; s:=sqrt(pp*(pp-a)*(pp-b)*(pp-c)); end;
procedure proverka(a,b,c:real; var bo:boolean); begin bo:=(a<(b+c)) and (b<(a+c)) and (c<(a+b)); end;
var x1,x2,x3,y1,y2,y3:real; s:real; st1,st2,st3:real; b:boolean; p:real; alpha,betta,gamma:real; ha,hb,hc:real; b1,b2,b3:real; m1,m2,m3:real;
begin vvod(x1,y1); {vvodim dannie} vvod(x2,y2); {po poly4ennim dannim s4itaem storoni} vvod(x3,y3); {proveryem nali4ie treygolnika} {ras4itivaem nygnie dannie po formylam i raspe4ativaem ix na ekran} storona(x1,x2,y1,y2,st3); storona(x3,x2,y3,y2,st1); storona(x3,x1,y3,y1,st2);
proverka(st1,st2,st3,b); if b then begin writeln('storona 1= ',st1:5:3); writeln('storona 2= ',st2:5:3); writeln('storona 3= ',st3:5:3); perimetr(st1,st2,st3,p); writeln('perimetr =',p:5:3);
ploshad(st1,st2,st3,s); writeln('ploshad=',s:5:3);
ugl(st2,st3,st1,alpha); ugl(st1,st2,st3,gamma); ugl(st1,st3,st2,betta); if alpha<0 then alpha:=pi+alpha; if betta<0 then betta:=pi+betta; if gamma<0 then gamma:=pi+gamma; writeln('ygol alpha= ',alpha*180/pi:5:3); writeln('ygol betta= ',betta*180/pi:5:3); writeln('ygol gamma= ',gamma*180/pi:5:3);
bissectrisa(st1,st2,gamma,b1); bissectrisa(st1,st3,betta,b2); bissectrisa(st2,st3,alpha,b3); writeln('bissectrisa 1= ',b1:5:3); writeln('bissectrisa 2= ',b2:5:3); writeln('bissectrisa 3= ',b3:5:3);
visota(ha,s,st1); visota(hb,s,st2); visota(hc,s,st3); writeln('visota ha= ',ha:5:3); writeln('visota hb= ',hb:5:3); writeln('visota hc= ',hc:5:3);
mediana(m1,st1,st2,gamma); mediana(m2,st2,st3,alpha); mediana(m3,st3,st1,betta); writeln('mediana 1= ',m1:5:3); writeln('mediana 2= ',m2:5:3); writeln('mediana 3= ',m3:5:3); end else writeln('treygolnika ne sushestvuet'); readln; end. Один из вариантов решения данной задачи! Школьникам пригодиться) Добавлено (05.01.2008, 15:05) --------------------------------------------- Получить N-e число фибоначчи a1=1 a2=1 a3=a1+a2 ... an=(an-1)+(an-2) Code program fibonachi; procedure vvod(var n:integer); begin writeln('Vvedite kolichesto chelnov dly raschta chisla fibonachi(n>=3) '); readln(n); end; procedure raschet(n:integer; var chislo:integer); var a1,a2,i:integer; begin a1:=1; {1-ii chlen} a2:=1; {2-oi chlen} for i:=3 to n do {nachinay s 3-go chlena vipolnyem cikl do vvodimogo n} begin chislo:=a1+a2; {Skaldivaem chisla po pravily} a1:=a2; {prisvaivaemchisly n-2 chislo n-1} a2:=chislo; {prisvaivaem chisly n-1 chislo n} end; end; var n,chislo:integer; begin vvod(n);{vvodim chislo n} raschet(n,chislo);{raschitivaem po pravily chislo fibonachi dly n} writeln('rezyltat = ',chislo);{vivodim chislo fibonachi dly n} readln; end. Добавлено (05.01.2008, 15:05) --------------------------------------------- Вводится натуральное число N. Определить, является ли оно простым. Code program zadanie2;
procedure vvod(var N:integer); begin writeln('Vvedite chislo dly proverki(chislo celoe!) ='); readln(N); end;
procedure raschet(N:integer; var y:integer); var i:integer; begin y:=0; for i:=1 to N do if (N mod i)=0 then y:=y+1; end; procedure vivod(y:integer; var N:integer); begin if y<=2 then writeln('Vvodimoe chislo prostoe = ',N) else writeln('Vvodimoe chislo slognoe = ',N); readln; end;
var N,y:integer; begin vvod(N);{vvoditsy 4islo} raschet(N,y);{proveryem vvodimoe 4islo na prostoe ili slognoe} vivod(y,N);{vivodim poly4iv6eysy rezyltat} end. Добавлено (05.01.2008, 15:06) --------------------------------------------- 1. Заполнить массив из n элементов случайными числами в диапазоне, введенном пользователем в начале программы. 2. Распечатать полученный массив. 3. Переписать из заполненного массива в другой элементы кратные трем. 4. Вывести полученный массив. 5. Отсортировать оба массива. 6. Вывести оба массива Code program zadanie1; Const N=10; type mas=array[1..N] of integer;
procedure diapozon(var a,b:integer); begin writeln('Vvedite nigniy gran massiva = '); readln(a); writeln('Vvedite verxnii gran massiva = '); readln(b); end;
procedure zapolnenie(a,b:integer; var mas1:mas); var i:integer; begin for i:=1 to N do mas1[i]:=a+random(b-(a+1)); end;
procedure poisk(mas1:mas; var mas2:mas; var N2:integer); var i:integer; begin N2:=0; for i:=1 to N do if (mas1[i] mod 3)>0 then begin N2:=N2+1; mas2[N2]:=mas1[i]; end; end;
procedure sortirovka(k:integer;var mas1:mas); var i,x,j:integer; begin for i:=1 to N-1 do for j:=i+1 to N do begin if mas1[i]<mas1[j] then begin x:=mas1[i]; mas1[i]:=mas1[j]; mas1[j]:=x; end; end; end;
procedure vivod(N2:integer; var mas2:mas); var i:integer; begin for i:=1 to N2 do write(mas2[i],' '); writeln; end;
var mas1,mas2:mas; a,b,N2:integer; begin randomize; diapozon(a,b);{vvodim diapazon massiva} zapolnenie(a,b,mas1);{zapolnyem i raspechativaem polychivsheisy massiv} vivod(N,mas1); poisk(mas1,mas2,N2);{naxodim i vipisivaem iz massiva vse chisla kratnie 3} sortirovka(N,mas1);{sortiryem 1 massiv} sortirovka(N2,mas2);{sortiryem 2 massiv} vivod(N,mas1);{vivodim 1-ii polychivsheisy massiv} vivod(N2,mas2);{vivodim 2-oi polychivsheisy massiv} readln; end. Добавлено (05.01.2008, 15:07) --------------------------------------------- Пока что все. Позже доделаю все лабы ради интереса и выложу еще задачек)
|
| |
|
|