×
  • 1. Системы счисления
  • 2. Логические функции
  • 3. Анализ информационных моделей
  • 4. Файловая система и базы данных
  • 5. Кодирование и декодирование. Условие Фано
  • 6. Выполнение и анализ простых алгоритмов
  • 7. Адресация в электронных таблицах
  • 8. Анализ программ с циклами
  • 9. Скорость передачи, объем памяти, время передачи
  • 10. Кодирование, комбинаторика
  • 11. Рекурсивные алгоритмы
  • 12. Адресация в сетях TCP/IP
  • 13. Вычисление количества информации
  • 14. Анализ и выполнение алгоритмов для исполнителя
  • 15. Поиск путей в графе
  • 16. Позиционные системы счисления
  • 17. Запросы в поисковых системах
  • 18. Логические выражения и множества
  • 19. Анализ программы по работе с массивом
  • 20. Анализ программ с циклами
  • 21. Анализ программ с циклами и подпрограммами
  • 22. Динамическое программирование
  • 23. Системы логических уравнений
  • 24. Исправление фрагмента программы и ошибок
  • 25. Программа на обработку массива
  • Спасибо за внимание
  • Подготовка к ЕГЭ по Информатике

    Задания на тему "Анализ программ с циклами".


    1) Запишите число, которое будет напечатано в результате выполнения следующей программы. Для Вашего удобства программа представлена на пяти языках программирования.

    s = 0 
    n = 1 
    while s < 51:  
       s = s + 11 
       n = n * 2 
    print(n)
    var s, n: integer; 
    begin 
      s := 0; 
      n := 1; 
      while s < 51 do begin 
        s := s + 11; 
        n := n * 2  
      end;  
      writeln(n)
    end
    #include <iostream>  
    using namespace std;  
    int main() {
      int s = 0, n = 1; 
      while (s < 51) { 
         s = s + 11; 
         n = n * 2;
      }    
      cout << n << endl;  
      return 0;
    }

    2) Запишите число, которое будет напечатано в результате выполнения следующей программы. Для Вашего удобства программа представлена на трех языках программирования.

    s = 0
    n = 75
    while s + n < 150:
       s = s + 15
       n = n - 5
    print(n)
    var s, n: integer;
    begin
      s := 0;
      n := 75;
      while s + n < 150 do begin
        s := s + 15;
        n := n - 5;
      end;
      writeln(n);
    end.
    #include <iostream>
    using namespace std;  
    int main() {
       int s = 0, n = 75;
       while (s + n < 150) {
          s = s + 15;
          n = n - 5; 
       } 
       cout << n << endl;
       return 0; 
    }

    3) При каком наибольшем целом введённом числе d после выполнения программы будет напечатано 160?

    d = int(input())
    s = 0
    k = 0
    while k < 300:
        s = s + 32
        k = k + d
    print(s)
    var s, k, d: integer;
    begin
     readln(d);
     s := 0;
     k := 0;
     while k < 300 do begin
       s := s + 32;
       k := k + d;
     end;
     writeln(s);
    end.
    #include <iostream>
    using namespace std;
    void main()
    {
    	int d; cin >> d;
    	int s = 0;
    	int k = 0;
    	while (k < 300) {
    		s = s + 32;
    		k = k + d;
    	}
    	cout << s << endl;
    }

    4) Укажите число, которое будет напечатано в результате выполнения следующей программы.

    s = 175
    n = 0
    while s + n < 300:
       s = s - 5
       n = n + 25
    print(n)
    var s, n: integer;
    begin
      s := 175;
      n := 0;
      while s + n < 300 do begin
        s := s - 5;
        n := n + 25
      end;
      writeln(n)
    end.
    #include <iostream>
    using namespace std;
    void main()
    {
    	int s = 175;
    	int n = 0;
    	while (s + n < 300) {
    		s = s - 5;
    		n = n + 25;
    	}
    	cout << n << endl;
    }

    5) Укажите число, которое будет напечатано в результате выполнения следующей программы.

    s = 0
    for k in range(1,51):
        if k % 5 == 0:
            s = 2*k + s
    print(s)
    var s, k: integer;
    begin
     s := 0;
     for k := 1 to 50 do
       if k mod 5 = 0 then s := 2*k + s;
     writeln(s);
    end.
    #include <iostream>
    using namespace std;
    void main()
    {
       int s = 0;
       for (int k = 1; k < 51; k++) {
    	if (k % 5 == 0)  s = 2 * k + s;
       }
       cout << s << endl;
    }

    6) При каком наибольшем целом введённом числе d после выполнения программы будет напечатано 10?

    d = int(input())
    s = 100
    k = 1000
    while k > 0:
        s = s - 15
        k = k - d
    print(s)
    var s, k, d: integer;
    begin
     readln(d);
     s := 100;
     k := 1000;
     while k > 0 do begin
       s := s - 15;
       k := k - d;
     end;
     writeln(s);
    end.
    #include <iostream>
    using namespace std;
    void main()
    {
    	int d; cin >> d;
    	int s = 100;
    	int k = 1000;
    	while (k > 0) {
    		s = s - 15;
    		k = k - d;
    	}
    	cout << s << endl;
    }

    7) Укажите число, которое будет напечатано в результате выполнения следующей программы.

    s = 5
    k = 7
    while s < 85: 
       s = s + k
       k = k + 2
    print(k)
    var s, k: integer;
    begin
     s := 5;
     k := 7;
     while s < 85 do begin
       s := s + k;
       k := k + 2;
     end;
     writeln(k);
    end.
    #include <iostream>
    using namespace std;
    void main()
    {
    	int s = 5;
    	int k = 7;
    	while (s < 85) {
    		s = s + k;
    		k = k + 2;
    	}
    	cout << k << endl;
    }

    8) Укажите число, которое будет напечатано в результате выполнения следующей программы.

    s = 505
    n = 0
    while s > 0:
       s = s - 20
       n = n + 1
    print(n+s)
    var s, n: integer;
    begin
    s := 505;
    n := 0;
    while s > 0 do begin
      s := s - 20;
      n := n + 1;
    end;
    writeln(n + s);
    end.
    #include <iostream>
    using namespace std;
    void main()
    {
    	int s = 505;
    	int n = 0;
    	while (s > 0) {
    		s = s - 20;
    		n = n + 1;
    	}
    	cout << n + s << endl;
    }

    9) Укажите число, которое будет напечатано в результате выполнения следующей программы.

    s = 7
    n = 77
    while n > s:
       s = s + 3
       n = n - 2
    print(n)
    var s, n: integer;
    begin
      s := 7;
      n := 77;
      while n > s do begin
        s := s + 3;
        n := n - 2
      end;
      writeln(n)
    end.
    end.
    #include <iostream>
    using namespace std;
    void main()
    {
    	int s = 7;
        int n = 77;
    	while ( n > s) {
    		s = s + 3;
    		n = n - 2;
    	}
    	cout << n << endl;
    }

    10) Укажите число, которое будет напечатано в результате выполнения следующей программы.

    s = 2
    k = 1
    while s < 60:
      k = k + 3
      s = s + k
    print(k)
    var s, k: integer;
    begin
     s := 2;
     k := 1;
     while s < 60 do begin
       k := k + 3;
       s := s + k;
     end;
     writeln(k);
    end.
    #include <iostream>
    using namespace std;
    void main()
    {
    	int s = 2;
    	int k = 1;
    	while (s < 60) {
    		k = k + 3;
    		s = s + k;
    	}
    	cout << k << endl;
    }

    11) Укажите число, которое будет напечатано в результате выполнения следующей программы.

    s = 0
    for k in range(1,21):
        if (k*k) % 2 == 0:
            s = k + s
    print(s)
    var s, k: integer;
    begin
     s := 0;
     for k := 1 to 20 do
       if (k*k) mod 2 = 0 then s := k + s;
     writeln(s);
    end.
    #include <iostream>
    using namespace std;
    void main()
    {
    	int s = 0;
    	for (int k = 1; k < 21; k++) {
    		if ((k*k) % 2 == 0) s = k + s;
    	}
    	cout << s << endl;
    }

    12) Укажите число, которое будет напечатано в результате выполнения следующей программы.

    s = 0
    for k in range(1,50):
       if k % 7 == 0:
           s = s + k
    print(2*s)
    var s, k: integer;
    begin
      s := 0;
      for k := 1 to 49 do
        if k mod 7 = 0 then s := s + k;
      writeln(2*s);
    end.
    #include <iostream>
    using namespace std;
    void main()
    {
    	int s = 0;
    	for (int k = 1; k < 50; k++) {
    		if (k % 7 == 0) s = s + k;
    	}
    	cout << 2*s << endl;
    }

    13) Укажите число, которое будет напечатано в результате выполнения следующей программы.

    s = 15
    n = 37
    while n > s:
       s = s + 1
       n = n - 1
    print(n)
    var s, n: integer;
    begin
      s := 15;
      n := 37;
      while n > s do begin
        s := s + 1;
        n := n - 1
      end;
      writeln(n)
    end.
    #include <iostream>
    using namespace std;
    void main()
    {
    	int s = 15;
        int n = 37;
    	while ( n > s) {
    		s = s + 1;
    		n = n - 1;
    	}
    	cout << n << endl;
    }

    14) Укажите число, которое будет напечатано в результате выполнения следующей программы.

    s = 0
    n = 0
    while 2*s < 70:
       s = s + 5
       n = n + 2
    print(n)
    var s, n: integer;
    begin
      s := 0;
      n := 0;
      while 2*s < 70 do begin
        s := s + 5;
        n := n + 2;
      end;
      writeln(n);
    end.
    #include <iostream>
    using namespace std;
    void main()
    {
    	int s = 0;
    	int n = 0;
    	while (2 * s < 70) {
    		s = s + 5;
    		n = n + 2;
    	}
    	cout << n << endl;
    }

    15) Укажите число, которое будет напечатано в результате выполнения следующей программы.

    s = 301
    n = 0
    while s > 0:
       s = s - 10
       n = n + 2
    print(n)
    var s, n: integer;
    begin
      s := 301;
      n := 0;
      while s > 0 do begin
        s := s - 10;
        n := n + 2;
      end;
      writeln(n);
    end.
    #include <iostream>
    using namespace std;
    void main()
    {
    	int s = 301;
    	int n = 0;
    	while (s>0) {
    		s = s -10;
    		n = n + 2;
    	}
    	cout << n << endl;
    }

    16) При каком наименьшем целом введённом числе d после выполнения программы будет напечатано 192?

    d = int(input())
    s = 0
    k = 0
    while k < 200:
        s = s + 64
        k = k + d
    print(s)
    var s, k, d: integer;
    begin
      readln(d);
      s := 0;
      k := 0;
      while k < 200 do begin
        s := s + 64;
        k := k + d;
      end;
    writeln(s);
    end.
    #include <iostream>
    using namespace std;
    void main()
    {
    	int d; cin >> d;
    	int s = 0;
    	int k = 0;
    	while (k<200) {
    		s = s + 64;
    		k = k + d;
    	}
    	cout << s << endl;
    }

    Задания взяты из базы данных ФИПИ, сайта К.Полякова или придуманы мною