Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
8 / 8 / 13
Регистрация: 03.02.2013
Сообщений: 156
1

Преобразование задачи в/по процедуры

05.12.2013, 18:08. Показов 823. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как правильно распределить описание параметров в процедурах?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
uses crt;
var x,y,a1x,a2x,a1y,a2y,b1x,b2x,b1y,b2y,c1x,c2x,c1y,c2y,a1,b1,c1,a2,b2,c2:real;
s1,s2,p1,p2,n1,n2:real;
begin
writeln('Ввод координат вершин первого треугольника');
 write('x(A1)=');readln(a1x);
 write('y(A1)=');readln(a1y);
 write('x(B1)=');readln(b1x);
 write('y(B1)=');readln(b1y);
 write('x(C1)=');readln(c1x);
 write('y(C1)=');readln(c1y);
writeln('Ввод координат вершин второго треугольника');
 write('x(A2)=');readln(a2x);
 write('y(A2)=');readln(a2y);
 write('x(B2)=');readln(b2x);
 write('y(B2)=');readln(b2y);
 write('x(C2)=');readln(c2x);
 write('y(C2)=');readln(c2y);
clrscr;
 a1:=sqrt(sqr(b1x-a1x)+sqr(b1y-a1y));
 b1:=sqrt(sqr(c1x-b1x)+sqr(c1y-b1y));
 c1:=sqrt(sqr(c1x-a1x)+sqr(c1y-a1y));
p1:=(a1+b1+c1)/2;
s1:=sqrt(p1*(p1-a1)*(p1-b1)*(p1-c1));
 a2:=sqrt(sqr(b2x-a2x)+sqr(b2y-a2y));
 b2:=sqrt(sqr(c2x-b2x)+sqr(c2y-b2y));
 c2:=sqrt(sqr(c2x-a2x)+sqr(c2y-a2y));
p2:=(a2+b2+c2)/2;
s2:=sqrt(p2*(p2-a2)*(p2-b2)*(p2-c2));
writeln('Площадь 1 треугольника = ',s1,'');
writeln('Площадь 2 треугольника = ',s2,'');
n1:=s1/s2;
n2:=s2/s1;
if s1>s2 then writeln('Площадь первого треугольника больше площади второго приблизительно в ',n1:0:3,' раз(а)')
         else writeln('Площадь второго треугольника больше площади первого приблизительно в ',n2:0:3,' раз(а)');
writeln('Конец программы');
end.
Вот моя попытка
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
uses crt;
var x,y,a1x,a2x,a1y,a2y,b1x,b2x,b1y,b2y,c1x,c2x,c1y,c2y,a1,b1,c1,a2,b2,c2:real;
s1,s2,p1,p2,n1,n2:real;
procedure treugolnik1;
var s1,a1,b1,c1,p1,a1x,a1y,b1x,b1y,c1x,c1y:real;
  begin
  writeln('Ввод координат вершин первого треугольника');
  write('x(A1)=');readln(a1x);
  write('y(A1)=');readln(a1y);
  write('x(B1)=');readln(b1x);
  write('y(B1)=');readln(b1y);
  write('x(C1)=');readln(c1x);
  write('y(C1)=');readln(c1y);
  a1:=sqrt(sqr(b1x-a1x)+sqr(b1y-a1y));
  b1:=sqrt(sqr(c1x-b1x)+sqr(c1y-b1y));
  c1:=sqrt(sqr(c1x-a1x)+sqr(c1y-a1y));
  p1:=(a1+b1+c1)/2;
  s1:=sqrt(p1*(p1-a1)*(p1-b1)*(p1-c1));
  writeln('Площадь 1 треугольника = ',s1,'');
  end;
procedure treugolnik2;
var s2,a2,b2,c2,p2,a2x,a2y,b2x,b2y,c2x,c2y:real;
  begin
  writeln('Ввод координат вершин второго треугольника');
  write('x(A2)=');readln(a2x);
  write('y(A2)=');readln(a2y);
  write('x(B2)=');readln(b2x);
  write('y(B2)=');readln(b2y);
  write('x(C2)=');readln(c2x);
  write('y(C2)=');readln(c2y);
  a2:=sqrt(sqr(b2x-a2x)+sqr(b2y-a2y));
  b2:=sqrt(sqr(c2x-b2x)+sqr(c2y-b2y));
  c2:=sqrt(sqr(c2x-a2x)+sqr(c2y-a2y));
  p2:=(a2+b2+c2)/2;
  s2:=sqrt(p2*(p2-a2)*(p2-b2)*(p2-c2));
  writeln('Площадь 2 треугольника = ',s2,'');
  end;
procedure sravnenie;
var n1,n2:real;
  begin
  n1:=s1/s2;
  n2:=s2/s1;
  if s1>s2 then writeln('Площадь первого треугольника больше площади второго приблизительно в ',n1:0:3,' раз(а)')
           else writeln('Площадь второго треугольника больше площади первого приблизительно в ',n2:0:3,' раз(а)');
  end;
begin
treugolnik1(s1,a1,b1,c1,p1,a1x,a1y,b1x,b1y,c1x,c1y);
treugolnik2(s2,a2,b2,c2,p2,a2x,a2y,b2x,b2y,c2x,c2y);
sravnenie(n1,n2);
writeln('Конец программы');
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2013, 18:08
Ответы с готовыми решениями:

Преобразование типа процедуры
Здравствуйте. Пишу игру на Паскале. Есть две процедуры, которые должны включиться при нажатии на...

Преобразование t-sql процедуры в pg функцию
Все доброго времени суток! Никак не пойму с какой стороны подойти, и поэтому прошу помощи. Нужно...

Процедуры. Выполнить преобразование данной программы
Разработка программ с использованием процедур. ВЫПОЛНИТЬ ПРЕОБРАЗОВАНИЕ ДАННОЙ ПРОГРАММЫ Var ...

Задачи (процедуры)
Помогите пожалуйста, составить задачу в С#. Процедуры. Составить процедуру, которая выводит на...

2
79 / 73 / 66
Регистрация: 11.04.2013
Сообщений: 221
05.12.2013, 18:28 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
uses crt;
 
type point=record
     x,y:real
     end;
 
procedure Sqweare(x,y,z:point; var S : real);
var a, b, c, p : real;
begin
 a:=sqrt(sqr(y.x-x.x)+sqr(y.y-x.y));
 b:=sqrt(sqr(z.x-y.x)+sqr(z.y-y.y));
 c:=sqrt(sqr(z.x-x.x)+sqr(z.y-x.y));
p:=(a+b+c)/2;
S:=sqrt(p*(p-a)*(p-b)*(p-c));
end;
 
var a1, b1, c1, a2, b2, c2: point;
    S1, S2, n1, n2 :real;
begin
writeln('Ââîä êîîðäèíàò âåðøèí ïåðâîãî òðåóãîëüíèêà');
 write('x(A1)=');readln(a1.x);
 write('y(A1)=');readln(a1.y);
 write('x(B1)=');readln(b1.x);
 write('y(B1)=');readln(b1.y);
 write('x(C1)=');readln(c1.x);
 write('y(C1)=');readln(c1.y);
writeln('Ââîä êîîðäèíàò âåðøèí âòîðîãî òðåóãîëüíèêà');
 write('x(A2)=');readln(a2.x);
 write('y(A2)=');readln(a2.y);
 write('x(B2)=');readln(b2.x);
 write('y(B2)=');readln(b2.y);
 write('x(C2)=');readln(c2.x);
 write('y(C2)=');readln(c2.y);
clrscr;
 
Sqweare(a1,b1,c1,S1);
Sqweare(a2,b2,c2,S2);
 
writeln('Ïëîùàäü 1 òðåóãîëüíèêà = ',s1,'');
writeln('Ïëîùàäü 2 òðåóãîëüíèêà = ',s2,'');
 
n1:=s1/s2;
n2:=s2/s1;
if s1>s2 then writeln('Ïëîùàäü ïåðâîãî òðåóãîëüíèêà áîëüøå ïëîùàäè âòîðîãî ïðèáëèçèòåëüíî â ',n1:0:3,' ðàç(à)')
         else writeln('Ïëîùàäü âòîðîãî òðåóãîëüíèêà áîëüøå ïëîùàäè ïåðâîãî ïðèáëèçèòåëüíî â ',n2:0:3,' ðàç(à)');
writeln('Êîíåö ïðîãðàììû');
end.
Вот мой вариант :-)
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
05.12.2013, 18:37 3
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
uses crt;
procedure vvod(k:byte;var x1,y1,x2,y2,x3,y3:real);
begin
writeln('Ввод координат вершин треугольника ',k);
writeln('Вершина 1');
read(x1,y1);
writeln('Вершина 2');
read(x2,y2);
writeln('Вершина 3');
read(x3,y3);
end;
function dlina(x1,y1,x2,y2:real):real;
begin
dlina:=sqrt(sqr(x1-x2)+sqr(y1-y2));
end;
function plosh(a,b,c:real):real;
var p:real;
begin
p:=(a+b+c)/2;
plosh:=sqrt(p*(p-a)*(p-b)*(p-c))
end;
 
var a1x,a1y,a2x,a2y,a3x,a3y, b1x,b1y,b2x,b2y,b3x,b3y,s1,s2,n1,n2:real;
begin
vvod(1,a1x,a1y,a2x,a2y,a3x,a3y);
vvod(2,b1x,b1y,b2x,b2y,b3x,b3y);
clrscr;
s1:=plosh(dlina(a1x,a1y,a2x,a2y),dlina(a2x,a2y,a3x,a3y),dlina(a1x,a1y,a3x,a3y));
if s1=0 then writeln('1 треугольник вырожденный S=0')
else writeln('Площадь 1 треугольника = ',s1:0:3);
s2:=plosh(dlina(b1x,b1y,b2x,b2y),dlina(b2x,b2y,b3x,b3y),dlina(b1x,b1y,b3x,b3y));
if s2=0 then writeln('2 треугольник вырожденный S=0')
else writeln('Площадь 2 треугольника = ',s2:0:3);
if (s1<>0)and(s2<>0) then
 begin
  n1:=s1/s2;
  n2:=s2/s1;
  if s1>s2 then
   begin
    writeln('Площадь первого треугольника больше площади второго');
    writeln('приблизительно в ',n1:0:3,' раз(а)');
   end
  else
   begin
    writeln('Площадь второго треугольника больше площади первого');
    writeln('приблизительно в ',n2:0:3,' раз(а)');
   end;
 end;
writeln('Конец программы');
end.
0
05.12.2013, 18:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2013, 18:37
Помогаю со студенческими работами здесь

Задачи на процедуры!!
1) В матрице x(3;4) T(7;8) минимальные элемент этого массива заменить суммой положительных...

2 задачи с использованием процедуры
Помогите пожалуйста решить: 1) Составить процедуру, исходными данными которой является матрица А...

Решение задачи с помощью процедуры
С помощью процедуры решить следующую задачу: Дана матрица размера 7х10. Вывести номер её последней...

2 задачи с использованием функции и процедуры
Задача № 1 С клавиатуры вводится строка символов.Посчитать количество букв &quot;а&quot; в строке и заменить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru