iİnformatikanın məktəbdə tədrisi

З-1

Задачи на целые числа без использования цикла


Дано трехзначное число. Вывести это число с пробелами между цифрами.

 Сам алгоритм решения этой задачи очень простой: вводим трехзначное число, выделяем цифры этого числа и выводим их через пробел. А вот оформление может быть различным.

Для первой задачи приведем 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;

}