1 Востаннє редагувалося Torbins (20.02.2014 09:44:18)

Тема: Програма для розв’язування простих рівнянь

Вже хотів залишити вивчення Pascal, але дуже вже хочеться написати цю першу програму "Програма для розвязування найпростіших виразів: a+b=x, a-b=x."
Дуже багато часу пішло на створення цього

program Calculator;
var a,b,x:real;
Sign:(y);
begin
writeln('Ця програма розв''язує вирази а+b=х а-b=х');
write('a=');
readln(a);
writeln('Виберіть знак додавання чи віднімання');
write('');
readln();
writeln('Виберіть значення  b');
write('b=');
readln(b);
if 'sign'='-' then writeln ('x=',a-b) else if 'sign'='+' then writeln ('x=',a+b) else writeln;
end.

і все таки щось не працює, хоча намагався писати дотримуючись усіх правил.
Допоможіть. Що тут не правильно?

2

Re: Програма для розв’язування простих рівнянь

Повідомлення про помилки? Яку літературу читаєте?

Подякували: dmyutro1

3 Востаннє редагувалося Chemist-i (18.02.2014 22:51:46)

Re: Програма для розв’язування простих рівнянь

dmyutro
а. Форматуйте код.
б. Звичайно компілятор показує в якому рядку проблема
б.1. мені каже що в цьому: Sign:(y); а конкретно "Calculator.pas(3) : Встречено ';', а ожидалось '..'"
0.0. Що малось на увазі, я чесно кажучи не збагну

Спробую розібрати Ваші думки:
так як отут:

'sign'='-'

Ви робите операцію яка порівнює два рядки, причому різні, причому при будь яких обставинах повертає false, я роблю висновок, що Ви хотіли змінну sign порівняти з знаком, а треба це робити отак

...
var Sign : Char; //або String, PChar, PAnsiChar і т.д.
...
if sign='-' then
  //Something
...

Sign : Char;//Один символ, Sign є змінна, Char - тип змінної, спитайте у гугловського, про типи в паскалі, або можете зразу почитати вікікнигу від одного нашого форумчанина

program Calculator;
  var a,b,x:real;
    Sign : Char;  
begin
  writeln('Ця програма розв''язує вирази а+b=х а-b=х');
  write('a=');
  readln(a);
  writeln('Виберіть знак додавання чи віднімання');
  write('');
  readln(Sign); //Отут ми в Sign читаєм наш знак від користувача, пам_ятайте що він може ввести будь-що
  writeln('Виберіть значення  b');
  write('b=');
  readln(b);
  if sign='-' then //змінну sign порівнюємо з рядком '-' (рядок, тому що в лапках одинарних)
    writeln ('x=',a-b) 
  else 
    if sign='+' then 
      writeln ('x=',a+b)
    else 
      writeln('You input error, please try again'); //А тут треба написати якшо нічого не допомогло
  
end.

П.С. Для досліджень використовувався PascalABC.NET, в турбо паскалі, щоб відкомпілювалось коментарі тре писати от в таких лапках {comment}

Подякували: Torbins, dmyutro, ADR3

4

Re: Програма для розв’язування простих рівнянь

Chemist-i написав:

dmyutro
а. Форматуйте код.

Та і твій код не по феншую (не по Borland-ськи) ;)

Подякували: Chemist-i1

5 Востаннє редагувалося Chemist-i (22.02.2014 00:52:30)

Re: Програма для розв’язування простих рівнянь

ADR написав:
Chemist-i написав:

dmyutro
а. Форматуйте код.

Та і твій код не по феншую (не по Borland-ськи) ;)

Можна посилання на фен-шуй?
п.с. Код не мій, а ТС-а, я просто додав пробілів, щоб було читабельно, та коментів, змінив дещо, щоб працювало .

6

Re: Програма для розв’язування простих рівнянь

Chemist-i написав:

п.с. Код не мій, а ТС-а, я просто додав пробілів, щоб було читабельно, та коментів, змінив дещо, щоб працювало .

http://citforum.ru/programming/delphi/style_delphi/

а... ну тоді по дрібницях: відсутність пробілів перед знаками рівності, зайвий пробіл перед двокрапкою та перед дужкою, переміння після var мають йти в новому рядку...


І (хоч їх тут і немає) нетреба begin...end зміщати на 2 пробіли, тільки його вміст...


хоча з дечим у стандарті я не зовсім згідний. наприклад:

if (LongExpression1) 
  or (LongExpression2) 
  or (LongExpression3) then 
  MyAction;

тут мені більше хочеться зробити так:

if (LongExpression1) 
  or (LongExpression2) 
  or (LongExpression3) 
then 
  MyAction;
Подякували: Chemist-i1

7

Re: Програма для розв’язування простих рівнянь

dmyutro написав:

Вже хотів залишити вивчення Pascal, але дуже вже хочеться написати цю першу програму

Невже у Вас так мало завзяття?