Перейти к содержимому

Реферальная программа Мегаплана

Партнерская программа Kredov

Pascal

#11 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1
0

Отправлено 09 Ноябрь 2009 - 17:10

Задача была таковой:

Задание 29: «Калькулятор». Ученик вводит с клавиатуры число(a), символ арифметического действия(z) (+, -, *, /) и еще одно число(:). Компьютер должен напечатать результат. Указание: Используйте три оператора ReadLn. Используйте case.


  • 0


#12 Евгений

Евгений
  • Пользователь
  • 481 сообщений
  • Репутация: 0

Отправлено 09 Ноябрь 2009 - 17:56

'/' : begin s:=a/b; writeln (s) end;

в этом случае переменная s должна иметь тип не integer, а real
т.к. при делении у тебя не всегда целое число получается
  • 0

#13 Евгений

Евгений
  • Пользователь
  • 481 сообщений
  • Репутация: 0

Отправлено 09 Ноябрь 2009 - 18:01

program calc;

var

	 operation:byte;

	 a,b:integer;

begin

	write('a = ');

	readln(a);

	write('b =');

	readln(b);

	writeln('1 - summa');

	writeln('2 - vichitanie');

	writeln('3 - delenie');

	writeln('4 - umnojenie');

	readln(operation);

	case operation of:

		1: writeln(a+b);

		2: writeln(a-b);

		3: writeln(trunc(a/b));

		4: writeln(a*b);

	end;

end.

  • 0

#14 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 09 Ноябрь 2009 - 18:17

Фигасе какой код =))

А не проще просто переменной S дать значение real?
  • 0


#15 Евгений

Евгений
  • Пользователь
  • 481 сообщений
  • Репутация: 0

Отправлено 09 Ноябрь 2009 - 23:54

write('a = ');
readln(a);
write('b =');
readln(:D;

это код такой не из-за того что переменная integter, а из-за того что не стоит забывать о том что юзеру даже в паскале должно быть понятно что он вводит, интерфейс хоть какой то чтоли)

writeln('1 - summa');
writeln('2 - vichitanie');
writeln('3 - delenie');
writeln('4 - umnojenie');
readln(operation);

эту часть можешь заменить знаком +, -, /, *, но по моему так польтзователь точно не ошибется и не нажмет левого

writeln(trunc(a/:));

напиши writeln(a/:); вот эта строчка заменяет вообще переменную S. если с переменной, то было бы так

s := a/b;
writeln(s);


  • 0

#16 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 10 Ноябрь 2009 - 01:04

Спасибо нащаникамана :)

пс. опять пересмотрелся Наша раша =))))
  • 0


#17 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 10 Ноябрь 2009 - 12:38

Появилась новая задача и новая проблема... =)

Задача 36

36) Для х=2700, 900, 300, 100 . . . и т.д. вычислять и печатать y=x/4 + 20 и z=2y+0.23 до тех пор, пока y*z не станет меньше 1/х.


Я напичатал
program lol;

uses CRT;

label m1, m2;

var
x, y, z, n, k : real;

begin ClrScr;
	x:=2700;

m1: x:=2700/3;
	y:=x/4+20;
	z:=2*y+0.23;
	n:=y*z;
	k:=1/x;
	if n < k then goto m2;
	goto m1;

m2: write(x:10:3);
	write(y:10:3);
	write(z:10:3);
end.
Не работает =(( Хотя когда я пишу n > k - то работает. В чем проблема, не подскажите?
  • 0



Оформление форума – IPBSkins.ru