Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на языке Pascal


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

Борисыч
Статус: Профессор
Рейтинг: 3495
∙ повысить рейтинг »
Орловский Дмитрий
Статус: Профессор
Рейтинг: 2812
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 2544
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Pascal (Паскаль)

Номер выпуска:1141
Дата выхода:27.11.2010, 02:30
Администратор рассылки:Boriss (Академик)
Подписчиков / экспертов:189 / 184
Вопросов / ответов:1 / 1

Вопрос № 180884: Здравствуйте, уважаемые эксперты! Прошу Вас помочь с программой.Нужно добавить в программу калькулятор,несколько основных логических действий(это вроде-логическое сложение,логическое умножение и инверсия). {Суть программы ниже:водиться сначала де...



Вопрос № 180884:

Здравствуйте, уважаемые эксперты! Прошу Вас помочь с программой.Нужно добавить в программу калькулятор,несколько основных логических действий(это вроде-логическое сложение,логическое умножение и инверсия).
{Суть программы ниже:водиться сначала действие затем первое число и второе и получается результат.}
примерно также хотелось бы работать с логическими действиями если это возможно

Отправлен: 21.11.2010, 21:04
Вопрос задал: sannek2 (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает Борисыч (Профессор) :
Здравствуйте, sannek2! Стиль не менял, добавил строчки. Поскольку напрямую нельзя ввести значение булевой переменной, ввод осуществляется в переменные n1 и n2 типа TMyBool = 0..1; При считывании присходит присваивание логическим переменным b1 и b2.
Печатаются логические значения.
Код:
Uses
crt;
Label
j;
Type
TMyBool = 0..1;
Var
x,y: real;
k: char;
i: integer;
n1,n2: TMyBool;
b1,b2: boolean;


Procedure wind(x1,y1,x2,y2,colfon:byte);
begin
window(x1,y1,x2,y2);
clrscr;
textcolor(10); {cvet texta}
end;

Procedure Z;
begin
writeln;
writeln('dla prodolchenia nachmite "Enter"  9;);
wind(13,20,46,22,2);
writeln;
end;

Function Factor(n:integer):LongInt;
begin
if n=1 then Factor:=1
else Factor:=n*Factor(n-1);
end;

Procedure Output(rezult:real);
begin
Z;
writeln(' ',rezult:1:1);
end;

Procedure LogicOutput(rezult:boolean);
begin
Z;
writeln(' ',rezult);
end;

Procedure Ro;
begin
write('Vedite cifru1 ');
readln(x);
write('Vedite Cifru2: ');
readln(y);
end;

Procedure LogicRo;
begin
write('Vedite chislo1: ');
readln(n1);
write('Vedite chislo2: ');
readln(n2);
b1:= (n1=1);
b2:= (n2=1);
end;

Procedure LogicRo1;
begin
write('Vedite chislo: ');
readln(n1);
b1:= (n1=1);
end;

Procedure Menu;
begin
wind(1,1,80,25,2);

write('****************************Arifmeticheskii kalkulator********************** **** ');
wind(2,24,46,24,2);

wind(48,2,78,18,2);
writeln;
writeln;
writeln(' VVedite deistvie :');
writeln;
writeln(' v - Logicheskoe Slozhenie');
writeln(' ^ - Logicheskoe Umnozhenie');
writeln(' ~ - Inversiia');
writeln(' + - Slochenie');
writeln(' - - Vichetanie');
writeln(' * - Ymnochenie');
writeln(' / - delenie ');
writeln;
writeln(' K - Kvadratnii koren');
writeln(' C - Kvadrat (y^2)');
writeln(' S - Stepen (y^n)');
writeln(' F - factorial (n!)');
writeln;
writeln;
writeln;
writeln;
write(' Dla vixoda nachmite "X"');

wind(1,20,12,22,2);
writeln;
writeln('otvet:=');
end;

Begin
repeat
Menu;
wind(2,2,46,18,2);
writeln;
write(' Vvedite arifmeticheskoe ili logicheskoe deistvie: ');
readln(k);
if (k='x') or (k='X') or (k='з') or (k='—') then
goto j;
case k of
'v':begin LogicRo; LogicOutput(b1 or b2); Readln; end;
'^':begin LogicRo; LogicOutput(b1 and b2); Readln; end;
'~':begin LogicRo1; LogicOutput(not b1); Readln; end;
'+':begin Ro; Output(x+y); end;
'-':begin Ro; Output(x-y); end;
'*':begin Ro; Output(x*y); end;
'/':
begin
Ro;
if y=0 then
begin
Z;
writeln(' Napominay:Na nol delit nelza');
end
else
Output(x/y);
end;
's':begin Ro; Output(exp(y*ln(x))); end;
'c':begin write(' ‚Vvedite chislo : '); readln(x); Output(sqr(x)); end;
&# 39;k':begin write(' ‚Vvedite chislo : '); readln(x); Output(sqrt(x)); end;
'f':begin write(' ‚Vvedite chi slo : '); readln(i); Output(Factor(i));
end;
else
begin
Z;
writeln('Vi nepravelno vibrali komandu');
end;
end;
k:=readkey;
j:until (k='x') or (k='X') or (k='з') or (k='—');
End.

Ответ отправил: Борисыч (Профессор)
Ответ отправлен: 24.11.2010, 15:23
Номер ответа: 264307

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 264307 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFPRO.RU, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.23 от 23.11.2010

    В избранное