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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2011, 15:15   #1
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
Печаль Найти площадь треугольника (по разным исходным данным) [на Delphi]

найти площадь триугольника но предложить пользователю выбор: по двоим сторонам, по двоим сторонам и углом между ними, по основе и высоте!
вот код программы:
Код:
program zadacha21;
var a,b,h,q:integer; S:real; 1,2,3:word;
Begin
WriteLn('каким методом вы хотите решить задачу?');
WriteLn('первый-по двоим сторонам, второй-по двоим сторонам и углом между ними, третий-по основе и высоте');
ReadLn(1,2,3);
if 1 then
WriteLn('введите две стороны');
ReadLn(a,b);
S:=((a*b)/2);
WriteLn('площадь равна*',S);else
if 2 then
WriteLn('введите две стороны и угол между ними');
ReadLn(a,b,q);
S:=((((1/2)*b)*c)sin(q));
WriteLn('площадь равна*',S);else
if 3 then
WriteLn('введите сторону и высоту');
ReadLn(a,h);
S:=(((1/2)*a)*h);
WriteLn('площадь равна*',S);
ReadLn;
end.
скажите что я тут не так делаю и что нужно исправить!

Последний раз редактировалось JTG; 14.09.2011 в 15:31.
gylayko вне форума Ответить с цитированием
Старый 14.09.2011, 15:20   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> ReadLn(1,2,3);

оригинально

> что нужно исправить

я бы начал с языка. Читать без содрогания невозможно же. "По двоим сторонам".
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 14.09.2011, 15:23   #3
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию

ну а в самой проге что не так? если не обращать внимания на русский текст??
gylayko вне форума Ответить с цитированием
Старый 14.09.2011, 15:30   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
1,2,3:word
Разве имена, начинающиеся с цифр, разрешены? Вообще зачем вам тут 3 переменные? Не проще уж тогда одну использовать? И выражения типа if 1 ... if 2 ... некорректны. Такое возможно только если бы это были имена переменных типа boolean, но, как выше написано, подобные имена запрещены )
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 14.09.2011 в 15:32.
Alex11223 вне форума Ответить с цитированием
Старый 14.09.2011, 15:33   #5
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию

ну ввел я там 1,2,3:boolean и толку? теперь перед 1,2,3:boolean пишет begin expected! куда там begin еще пихать?
gylayko вне форума Ответить с цитированием
Старый 14.09.2011, 15:37   #6
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию

теперь перенес эту строку в начало, теперь не показывает что begin expected! даже переименовал переменные в p,v,t , теперь выдает Error 64 : Cannot Read or Write variables of this type ! что делать??
gylayko вне форума Ответить с цитированием
Старый 14.09.2011, 15:40   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А вы хоть 1 страницу учебника\основ языка (Паскаль) прочитали?
Цитата:
пишет begin expected
Видимо компилятор в шоке от имен переменных начинающихся с цифр.

Вообще вам не подходит тип boolean в данном случае: переменные этого типа могут хранить всего 2 значения, 1 либо 0. Используйте другой целочисленный тип (integer, short, word ...). И 3 переменные для этого не нужны.

т.е. как-то так:
Код:
var sw:integer;
...
readln(sw);
if (sw = 1) then ...

...

if (sw = 2) then ...
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.09.2011, 15:52   #8
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Зачем там else? Чтобы не возникала каша с if, я обычно оформляю блоки (и всем рекомендую) вида:
Код:
if bla-bla then
begin
    
    bla-bla
end;
else
begin
    bla-bla
end;
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 14.09.2011, 15:58   #9
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию

if bla-bla then
begin

bla-bla
end;
else
begin
bla-bla
end;
я сделал так, и что же? Error 113, то есть данный символ не может быть первым символом в операторе, пишет перед else.
gylayko вне форума Ответить с цитированием
Старый 14.09.2011, 15:58   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Зачем там else
А где else?
Кстати да, автор забыли про блоки begin\end в if и вероятно сейчас столкнулся с неожиданной и непонятной ошибкой)

Цитата:
то есть данный символ не может быть первым символом в операторе, пишет перед else
После end перед else нельзя ставить ;.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 14.09.2011 в 16:00.
Alex11223 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение списка по исходным данным при наличии пустых ячеек нгв1607 Microsoft Office Excel 2 04.08.2011 10:27
площадь треугольника х-prof Паскаль, Turbo Pascal, PascalABC.NET 3 16.06.2011 13:29
ООП (паскаль) - дан ромб. найти площадь. построить пирамиду, найти её площадь Rfn.if Помощь студентам 0 27.04.2011 16:10
Присвоение исходным данным, значения из анализа 2-х таблиц. Martiniy Microsoft Office Excel 3 24.12.2010 23:03
Вычислить площадь треугольника. С++ varlonec Помощь студентам 2 26.01.2010 20:07