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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2011, 16:00   #11
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
я сделал так, и что же? Error 113, то есть данный символ не может быть первым символом в операторе, пишет перед else.
Напоминает разговор слепого с глухим. Я не вижу что Вы там сделали, Вы очевидно не слышите что мы тут говорим.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 14.09.2011, 16:07   #12
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию

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

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 14.09.2011 в 19:52.
gylayko вне форума Ответить с цитированием
Старый 14.09.2011, 16:20   #13
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию

эта ошибка означает, что я пытаюсь впихнуть нечисловую переменную! выдает перед ReadLn(p,v,t)
gylayko вне форума Ответить с цитированием
Старый 14.09.2011, 16:21   #14
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
ReadLn(p,v,t);
Вы сейчас просите пользователя ввести 3 числа. Зачем?
Цитата:
if (w=p)
if (w=v)
if (w=t)
Что и с чем вы сравниваете? Чему, по вашему мнению, равно w и что это такое?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.09.2011, 16:26   #15
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию

ну я обозначил первый вариант решения (то есть когда задача решается по двум сторонам) буквой р, второй вариант буквой v, а третий t! чтобы пользователь мог выбрать сам вариант который ему удобно! я хочу чтобы он одно число вводил, то есть вариант! w это то, что Вы мне псали, только Вы его называлаи sw.
gylayko вне форума Ответить с цитированием
Старый 14.09.2011, 16:31   #16
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Нет, вы создали переменные с именами p, v и t. и пользователю, и компилятору абсолютно все равно как они называются — они могут содержать только числа в определенном диапазоне. Если вы хотите работать с буквами\строками, то используйте символьный тип char, либо строковой string, но в этом нет необходимости при решении этой задачи. Посмотрите еще раз на мой пример с sw.

if (w=p) и т.д. в данном случае означает следующее: если число, содержащееся в переменной w, равно числу, содержащемуся в переменной p.

Таки советую повторить основы Паскаля\программирования.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

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

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

Я же уже писал раньше (там, где sw).

Создал бы переменную целочисленного типа, попросил бы ввести число 1, 2 или 3 и в зависимости от этого выбрать соответствующий вариант решения.
Вот и получится:

Код:
var sw:integer;
...
writeln('Как будем вычислять площадь? По двум сторонам (1), по двум сторонам и углу между ними (2), по основе и высоте (3)?
Введи число (1, 2 или 3): ');
readln(sw);
if (sw = 1) then
begin
вариант1;
end;

if (sw = 2) then
begin
вариант2;
end;
Вообще тут наверно красивее было бы использовать case вместо if'ов, но разницы никакой. Еще можно WriteLn('площадь равна*',S); вынести в самый конец т.к. он повторяется во всех.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 14.09.2011 в 16:47.
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