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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2014, 16:55   #1
Fly090
Пользователь
 
Аватар для Fly090
 
Регистрация: 25.09.2014
Сообщений: 24
По умолчанию Какую программу написать? (Паскаль)

Учусь програмировать на Паскаль
Fly090 вне форума Ответить с цитированием
Старый 25.10.2014, 17:24   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Сделай калькулятор. Вводишь первое число, потом второе, потом операцию. Получаешь результат. Помни что на ноль делить нельзя и есть числа которые могут не поместиться в стандартные типы.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 25.10.2014, 17:49   #3
Fly090
Пользователь
 
Аватар для Fly090
 
Регистрация: 25.09.2014
Сообщений: 24
По умолчанию

program kalkulator;
var
a,b,c:real;
x:char;
begin
writeln('введите первое число');
readln(a);
writeln('введите второе число');
readln(b);
writeln('введите знак');
readln(x);
case x of
'/': c:=a/b;
'*': c:=a*b;
'+': c:=a+b;
'-': c:=a-b;
end;
writeln('Результат:',c);
end.
Fly090 вне форума Ответить с цитированием
Старый 25.10.2014, 17:52   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Браво. А теперь так, чтоб можно было выражение вводить в одну строку.
Два числа - один знак действия.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.10.2014, 17:58   #5
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,981
По умолчанию

Без функций Pos, Copy тут не обойтись, если выражение в одну строку вводить!
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 25.10.2014, 18:04   #6
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Введи a=1 b=0 x='/' А я ведь предупреждал. Вот всегда так, не слушают аксакала... Эх молодежь, мастера Угвея на вас не хватает.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 25.10.2014, 18:15   #7
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,981
По умолчанию

Вот только что составил программу с вашими "премудростями":
Код:
program kalkulator;
var
 a,b,c:real;
 x:char;
 s:string;
 i:integer;
 begin
 writeln('Введите выражение');
 readln(s);
 i:=0;
 If Pos('+',s)<>0 then
 begin
    x:='+';
    i:=Pos('+',s);
 end else
 If Pos('-',s)<>0 then
 begin
    x:='-';
    i:=Pos('-',s);
 end else
 If Pos('*',s)<>0 then
 begin
    x:='*';
    i:=Pos('*',s);
 end else
 If Pos('/',s)<>0 then
 begin
    x:='/';
    i:=Pos('/',s);
 end;
 If i=0 then
 begin
    writeln('Где знак операции? :)');
    readln;
    Exit;
 end;
 a:=StrToFloat(Copy(s,1,i-1));
 b:=StrToFloat(Copy(s,i+1,Length(s)));
 If (x='/') and (b=0) then
 begin
    writeln('Деление на НОЛЬ запрещено!');
    readln;
    Exit;
 end;
 case x of
 '/': c:=a/b;
 '*': c:=a*b;
 '+': c:=a+b;
 '-': c:=a-b;
 end;
 writeln('Результат:',c);
 readln;

end.
Можно так писать: 7+6 и Enter
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 26.10.2014 в 04:19. Причина: Замена StrToInt на StrToFloat
newerow1989 вне форума Ответить с цитированием
Старый 25.10.2014, 18:18   #8
Fly090
Пользователь
 
Аватар для Fly090
 
Регистрация: 25.09.2014
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Введи a=1 b=0 x='/' А я ведь предупреждал. Вот всегда так, не слушают аксакала... Эх молодежь, мастера Угвея на вас не хватает.
Код:
program kalkulator;
label 1;
var
a,b,c:real;
x:char;
begin
 writeln('введите первое число');
 readln(a);
 writeln('введите второе число');
 readln(b);
1:writeln('введите знак');
 readln(x);
 case x of
  '/':
  begin
  if b=0 then goto 1; 
  c:=a/b;
  end;
  '*': c:=a*b;
  '+': c:=a+b;
  '-': c:=a-b;
 end;
 writeln('Результат:',c);
end.
отак от)

Последний раз редактировалось Fly090; 25.10.2014 в 18:27.
Fly090 вне форума Ответить с цитированием
Старый 25.10.2014, 18:21   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Без функций Pos, Copy тут не обойтись, если выражение в одну строку вводить!
Ошибаешься )
Без них обойтись можно.
Цитата:
1:writeln('введите знак');
case x of
'/':
begin
if b=0 then goto 1;
Это работает? О_о
Всмысле оно нормально работает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.10.2014, 18:21   #10
Fly090
Пользователь
 
Аватар для Fly090
 
Регистрация: 25.09.2014
Сообщений: 24
По умолчанию

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
Вот только что составил программу с вашими "премудростями":
Код:
program kalkulator;
var
 a,b,c:real;
 x:char;
 s:string;
 i:integer;
 begin
 writeln('Введите выражение');
 readln(s);
 i:=0;
 If Pos('+',s)<>0 then
 begin
    x:='+';
    i:=Pos('+',s);
 end else
 If Pos('-',s)<>0 then
 begin
    x:='-';
    i:=Pos('-',s);
 end else
 If Pos('*',s)<>0 then
 begin
    x:='*';
    i:=Pos('*',s);
 end else
 If Pos('/',s)<>0 then
 begin
    x:='/';
    i:=Pos('/',s);
 end;
 If i=0 then
 begin
    writeln('Где знак операции? :)');
    readln;
    Exit;
 end;
 a:=StrToInt(Copy(s,1,i-1));
 b:=StrToInt(Copy(s,i+1,Length(s)));
 If (x='/') and (b=0) then
 begin
    writeln('Деление на НОЛЬ запрещено!');
    readln;
    Exit;
 end;
 case x of
 '/': c:=a/b;
 '*': c:=a*b;
 '+': c:=a+b;
 '-': c:=a-b;
 end;
 writeln('Результат:',c);
 readln;

end.
Можно так писать: 7+6 и Enter
ну здесь мне надо разобратся)
Fly090 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать программу для Паскаль 9 класс: составить программу которая печатает таблицу умножения и сложения натуральных чисел goodula Помощь студентам 0 23.01.2014 17:39
Какую программу написать на Delphi? Tadochi Помощь студентам 12 14.12.2013 23:21
Написать программу которая поможет определить в какой подъезд, на какой этаж, и в какую квартиру нужно идти почтальону qpuTuJlb Помощь студентам 7 25.04.2012 22:29
Какую программу можно написать на делфи чтобы она пользовалась большим спросом Xander Свободное общение 8 03.07.2008 16:11