Задачи на целые числа без использования цикла
Дано трехзначное число. Вывести это число с пробелами между цифрами.
Сам алгоритм решения этой задачи очень простой: вводим трехзначное число, выделяем цифры этого числа и выводим их через пробел. А вот оформление может быть различным.
Для первой задачи приведем 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; } |