Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2009, 16:24   #1
Рамик
Студент
Форумчанин
 
Аватар для Рамик
 
Регистрация: 18.02.2009
Сообщений: 125
По умолчанию [Pascal] Комбинированные типы

Задача:
Дано 3 прямоугольника, о каждом известном его имя, ширина и высота.
вывести имя прямоугольника с наименьшей площадью.


ПОДСКАЖИТЕ АЛГОРИТМ ПОЖАЛУЙСТА(если можно в программном виде)
Рамик вне форума Ответить с цитированием
Старый 09.03.2009, 17:14   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Объявляете тип:
Код:
type pryam = record
name : string;
a : integer;
b : integer;
end;
и массив из 3-х прямоугольников:
Код:
var P : array[1..3] of pryam;
Вводите данные:
Код:
for i:=1 to 3 do
 begin
 readln(P[i].name);
 readln(P[i].a);
 readln(P[i].b);
 end;
Затем находите площади, сравниваете и выводите имя меньшего.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 09.03.2009, 17:22   #3
Рамик
Студент
Форумчанин
 
Аватар для Рамик
 
Регистрация: 18.02.2009
Сообщений: 125
По умолчанию

спасибо!
.

как правельно условие поставить?

Код:
program p1;
uses crt;
type pryam=record
name:string;
a:integer;
b:integer;
end;
var p:array[1..3] of pryam;
    i:byte;
    s1,s2,s3:integer;
begin
clrscr;
writeln('vvedite dannie:');
for i:=1 to 3 do begin
readln(p[i].name);
readln(p[i].a);
readln(p[i].b);
end;
s1:=(p[1].a)*(p[1].b);
s2:=(p[2].a)*(p[2].b);
s3:=(p[3].a)*(p[3].b);
if s1<s2 then
if s1<s3 then begin
writeln(p[1].name); end
else
if s2<s1 then
if s2<s3 then begin
writeln(p[2].name); end
else
if s3<s2 then
if s3<s1 then begin
writeln(p[3].name); end;
end.

Последний раз редактировалось Stilet; 10.03.2009 в 15:33.
Рамик вне форума Ответить с цитированием
Старый 09.03.2009, 17:56   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Так, например:
Код:
if (s1<s2) and (s1<s3) then writeln(p[1].name)
else if (s2<s1) and (s2<s3) then writeln(p[2].name)
else if (s3<s1) and (s3<s2) then writeln(p[3].name);
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 09.03.2009, 18:00   #5
Рамик
Студент
Форумчанин
 
Аватар для Рамик
 
Регистрация: 18.02.2009
Сообщений: 125
По умолчанию

спасибо большое!
Рамик вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal комбинированные типы Rus 47 Помощь студентам 7 22.02.2009 17:48
Комбинированные типы melikyan Помощь студентам 5 10.02.2009 21:41
Комбинированные типы данных и массивы mar4elo Общие вопросы Delphi 11 01.12.2008 10:41
Типы данных nedden Помощь студентам 2 12.11.2008 17:18
Строковые типы SunKnight Общие вопросы Delphi 8 07.05.2008 15:46