Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Без if, for, while


Автор: GreMail 12.10.2006, 17:25
Я в Паскале ни соображаю ничего, помогите пожалуйста решить следующие задачи  без if,for,while,then и т.д. и применяя div и mod:
1) ввести два числа и упорядочить их в порядке возростания 
2) Определить, сколько минутm и сколько часов h прошло. 
например: k=13257; H=3 m=40 
3) Поменять местами значения двух переменных. 2 способа 
4) Ввести два числа m и n если n< или = m, то вывести 1, если нет, то любое другое число. 
5) Ввести любое трехзначное число и вывести сумму его цифр. 

Автор: ivashkanet 12.10.2006, 17:47
Цитата(GreMail @  12.10.2006,  17:25 Найти цитируемый пост)
1) ввести два числа и упорядочить их в порядке возростания 
4) Ввести два числа m и n если n< или = m, то вывести 1, если нет, то любое другое число. 

Эти задачи без if решить не возможно  smile 
Цитата(GreMail @  12.10.2006,  17:25 Найти цитируемый пост)
2) Определить, сколько минутm и сколько часов h прошло. 

Прошло с какого момента?
Я паскаль лет 100 не видел, так что будут ошибки (синтаксические)


3)
Код

var a, b, temp: real;

begin

writeln("Введите два числа:");
readln(a);
readln(b);

write("а было: ");
writeln(a);
write("b было: ");
writeln(b);

temp:=a;
a:=b;
b:=temp;

write("а стало: ");
writeln(a);
write("b стало: ");
writeln(b);

end.

Второй способ:
Код

var a, b: real;

begin

writeln("Введите два числа:");
readln(a);
readln(b);

write("а было: ");
writeln(a);
write("b было: ");
writeln(b);

a:=a + b;
b:=a - b;
a:=a-b;

write("а стало: ");
writeln(a);
write("b стало: ");
writeln(b);

end.


5)
Код

var a, ed, des, sot: integer;

begin

writeln("Введите трехзначное число:");
readln(a);

ed:= a mod 10;
a:= a div 10;
des: = a mod 10;
sot:= a div 10;

write("Единиц: ");
writeln(ed);
write("Десяток: ");
writeln(des);
write("Сотен: ");
writeln(sot);

end.

Автор: Sartorius 12.10.2006, 17:50
 4)  write((n - 1)  div m + 1);
 

Автор: ivashkanet 12.10.2006, 17:51
Цитата(GreMail @  12.10.2006,  17:25 Найти цитируемый пост)
4) Ввести два числа m и n если n< или = m, то вывести 1, если нет, то любое другое число. 

 smile 

Код

var m, n: integer;

begin

writeln("Введите два числа:");
readln(m);
readln(n);

writeln((n div m)+1);
end.

А говорил невозможно  smile

Добавлено @ 17:53 
Цитата(Sartorius @  12.10.2006,  17:50 Найти цитируемый пост)
4)  write((n - 1)  div m + 1);

Я то же придумал smile

Sartorius, точно, n-1? Но идею я уловил smile

Автор: Sartorius 12.10.2006, 17:55
ivashkanet,  там n может быть равно m... div даст 1 , а нада что б 0

Автор: ivashkanet 12.10.2006, 17:57
Цитата(Sartorius @  12.10.2006,  17:55 Найти цитируемый пост)
ivashkanet,  там n может быть равно m... div даст 1 , а нада что б 0

Я понял  smile 
Просто а вопрос --- это... запятая на английском  smile 

Автор: volvo877 12.10.2006, 18:10
Цитата(GreMail @  12.10.2006,  16:25 Найти цитируемый пост)
1) ввести два числа и упорядочить их в порядке возростания

Код
var
  a, b: integer;
  min, max: integer;
begin
  a := 17; b := 12;
  min := (a + b - abs(a - b)) div 2;
  max := (a + b) - min;
  writeln(min:4, max:4);
end.
?

Автор: sergejzr 12.10.2006, 18:17
Кстати это тоже должно сработать.
3)
a:=a XOR b;
b:=a XOR b;
a:=a XOR b;

Задачки прикольные, поучительные и интересные. Всем + в репу!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)