Задачи на целые числа без использования цикла
Дано
трехзначное число. Вывести это число с пробелами между цифрами.
Сам
алгоритм решения этой задачи очень простой: вводим трехзначное число, выделяем
цифры этого числа и выводим их через пробел. А вот оформление может быть
различным.
Для
первой задачи приведем 3 различных способа оформления:
1-й способ (A1.1a):
выделяем цифры нашего числа и записываем их в 3 разных переменные a,b,c. Затем выводим на экран значения этих
переменных, вставляя между ними пробел.
2-й способ (A1.1b): Мы
не выделяем предварительно цифры числа, а записываем операторы выделения этих
цифр прямо в операторе вывода (writeln или cout). Программа получилась короче.
3-й способ (A1.1c): В
этом способе мы ввели проверку вводимого числа, сообщения для пользователя,
запись цифр числа в отдельные переменные, хотя здесь можно было бы цифры и не
выделять, как во втором способе.
Примечание 1: В
дальнейших примерах мы в большинстве случаев будем использовать первый способ
оформления, но рекомендуем эти же программы написать с использованием второго и
третьего способов. И заметим, что это просто способы оформления, для которых
вопрос «А какой из них лучше» - просто не имеет смысла.
Примечание 2: В
третьем способе мы проверяем введенное число, трехзначное оно или нет, а вот в
первом и втором способах такая проверка отсутствует. А это значит, что если мы
вместо трехзначного числа введем четырехзначное, то ответ будет не верен. Это
можно исправить, если вместо операторов ( c:=N div 100; или c=n/100;)
написать операторы ( c:=(N div
100) mod 10;
или c=(n/100)%10;). В дальнейшем мы часто так и будем поступать.
И давайте договоримся: данные для всех
программ будем вводить ПРАВИЛЬНЫЕ, а
если хотим вводить любые данные, применим способ 3 с проверкой.
Program A1_1a;
Var N,a,b,c:integer;
BEGIN
readln(N);
a:=N div 100;
b:=(N div 10) mod 10;
c:=N mod 10;
writeln(a,' ',b,' ',c);
END.
|
//Program A1.1a
#include
<iostream>
using
namespace std;
int main()
{ int n,a,b,c;
cin>>n;
a=n/100;
b=(n/10)%10;
c=n%10;
cout <<a<< "
"<<b <<" "<<c<< endl;
return 0;
}
|
Program A1_1b;
Var N:integer;
BEGIN
readln(N);
writeln(N div 100,' ',(N div 10) mod 10,'
',N mod 10);
END.
|
//Program A1.1b
#include
<iostream>
using
namespace std;
int main()
{ int n;
cin>>n;
cout
<<n/100<< " "<<(n/10)%10 <<" " << n%10<< endl;
return 0;
}
|
Program A1_1c;
Var N,a,b,c:integer;
BEGIN
write('Vvedite trexznachnoe chislo N=');
readln(N);
if (N<100) OR (N>999) then
writeln('Vi vveli nevernoe chislo')
else
begin
a:=N div 100;
b:=(N div 10) mod 10;
c:=N mod 10;
writeln('Vivod:',a,' ',b,' ',c);
end;
readln;
END.
|
//Program A1.1c
#include
<iostream>
using
namespace std;
int main()
{ int n,a,b,c;
cout<<" Vvedite trexznachnoe
chislo =";
cin>>n;
if (n<100 ||
n>999) cout<<" Vi vveli nevernoe chislo'"<<endl;
else
{ a=n/100; b=(n/10)%10;
c=n%10;
cout <<" Vivod:"<<a<<
" " << b << " " << c << endl;
}
return 0;
}
|
|