B3 Ответы и решения

B3.1     B3.2     B3.3     B3.4      B3.5  

 

B3.1  ( ege.yandex.ru-1)

Определите, что будет напечатано в результате выполнения программы (записанной ниже на разных языках программирования):

 

Бейсик Паскаль
DIM N, S AS INTEGER
N = 1 : S = 0
WHILE N <= 101
   S = S + 7
   N = N + 1
WEND
PRINT S
var n, s: integer;
begin
   n := 1; s := 0; 
   while n <= 101 do begin
      s := s + 7;
      n := n + 1;
   end;
   write(s);
end.
Си Алгоритмический
#include<stdio.h>
void main(){
   int n, s;
   n = 1;  s = 0;
   while (n <= 101) {
      s = s + 7;
      n = n + 1;
   }  
   printf("%d", s);
}
алг
нач
   цел n, s
   n := 1; s := 0
   нц пока n <= 101
      s := s + 7
      n := n + 1
   кц
   вывод s
кон

Решение. При решении этой задачи не требуется непосредственно выполнять алгоритм. Обозначим ST значение переменной s после выполнения T-й итерации цикла. В начале T-й итерации значение переменной n равно T (в начале 1-й итерации выполнено: n=1;  в начале 2-й итерации выполнено: n=2 и т.д.). В конце T-й итерации значение переменной s равно 7T (в конце 1-й итерации выполнено: s=7;  в конце 2-й итерации выполнено: s=14 и т.д.).  Цикл будет выполнен 101 раз. Значит, итоге s = 7*101=707.

Ответ: 707

 

B3.2  ( ege.yandex.ru-2)

Определите, что будет напечатано в результате выполнения программы (записанной ниже на разных языках программирования):

Бейсик Паскаль
DIM N, S AS INTEGER
N = 4 : S = 0
WHILE N <= 8
   S = S + 15
   N = N + 1
WEND
PRINT S
var n, s: integer;
begin
   n := 4;s := 0;
   while n <= 8 do begin 
      s := s + 15;
      n := n + 1;
   end;
   write(s);
end.
Си Алгоритмический
#include<stdio.h>
void main(){
   int n, s;
   n = 4; s = 0;
   while (n <= 8 ){
      s = s + 15;
      n = n + 1;
   }
   printf("%d", s);
}
алг
нач
   цел n, s
   n := 4; s := 0
   нц пока n <= 8
      s := s + 15
      n := n + 1
   кц
   вывод s
кон

Решение (набросок). При решении этой задачи не требуется непосредственно выполнять алгоритм. В конце T-й итерации значение переменной s равно 15T (в конце 1-й итерации выполнено: s=15;  в конце 2-й итерации выполнено: s=30 и т.д.). Цикл будет выполнен 8-4+1=5 раз. Значит, в итоге s = 15*5=75.

Ответ: 75

 

B3.3  ( ege.yandex.ru-3)

Определите, что будет напечатано в результате выполнения программы (записанной ниже на разных языках программирования):

Бейсик Паскаль
DIM N, S AS INTEGER
N = 0 : S = 512
WHILE S  >= 0
   S = S - 20
   N = N + 1
WEND
PRINT N
var n, s: integer;
begin
   n := 0; s := 512;
   while s >= 0 do begin 
      s := s - 20;
      n := n + 1;
   end;
   write(n);
end.
Си Алгоритмический
#include<stdio.h>
void main(){
   int n, s;
   n = 0; s = 512;
   while (s >= 0){
      s = s - 20;
      n = n + 1;
   }
   printf("%d", n);
}
алг
нач
   цел n, s
   n := 0; s := 512
   нц пока s >= 0
      s := s - 20
      n := n + 1
   кц
   вывод n
кон

Решение (набросок). Значение переменной n – количество выполнений цикла. Это количество равно div(512, 20)+1 = 26.

Ответ:  26

 

B3.4  ( ege.yandex.ru-4)

Определите, что будет напечатано в результате выполнения программы (записанной ниже на разных языках программирования):

Бейсик Паскаль
DIM N, S AS INTEGER
N = 14 : S = 0
WHILE N <= 18
   S = S + 25
   N = N + 1
WEND
PRINT S
var n, s: integer;
begin
   n := 14; s := 0; 
   while n <= 18 do begin
      s := s + 25;
      n := n + 1;
   end;
   write(s);
end.
Си Алгоритмический
#include<stdio.h>
void main(){
   int n, s;
   n = 14; s = 0;
   while (n <= 18){
      s = s + 25;
      n = n + 1;
   }
   printf("%d", s);
}
алг
нач
   цел n, s
   n := 14; s := 0
   нц пока n <= 18
      s := s + 25
      n := n + 1
   кц
   вывод s
кон

Решение: При каждом выполнении цикла значение переменной увеличивается на 25. Цикл будет выполнен 18-14+1 = 5 раз. Итоговое значение равно 5*25 = 125.

Ответ:  125

 

B3.5  ( ege.yandex.ru-5)

Определите, что будет напечатано в результате выполнения программы (записанной ниже на разных языках программирования):

Бейсик Паскаль
DIM N, S AS INTEGER
N = 24 : S = 0
WHILE N <= 28
   S = S + 20
   N = N + 2
WEND
PRINT S
var n, s: integer;
begin
   n := 24; s := 0; 
   while n <= 28 do begin 
      s := s + 20;
      n := n + 2;
   end;
   write(s);
end.
Си Алгоритмический
#include<stdio.h>
void main(){
   int n, s;
   n = 24; s = 0;
   while (n <= 28){
      s = s + 20;
      n = n + 2;
   }
   printf("%d", s);
}
алг
нач
   цел n, s
   n := 24; s := 0
   нц пока n <= 28
      s := s + 20
      n := n + 2
   кц
   вывод s
кон

Решение (набросок). Цикл выполняется с шагом 2. Поэтому он будет выполнен 3 раза (при n=24. 26, 28). На каждой итерации значение s  увеличивается на 20.

Ответ: 60

 

 
 

9 комментариев

  1. Серёга:

    В задании В3 в ответе mod(512, 20)+1 =26.
    Это ведь деление с остатком,может правильнее будет написать div?

  2. Иван:

    почему-то в этих заданиях в записи на паскале никогда не встречается ; после последнего вывода, в глаза бросается)

  3. Andrey:

    Почему в задании В3.1 вы 7 умножили на 101? Цикл будет выполнен не 101, а 100 раз, т.к. начальное n=1, а нам по условию надо (n<=101), т.е. когда цикл будет выполняться 100ый раз n будет равно 101. Или я что-то путаю?

    • ege-go:

      Тут все путаются:) Смотри. При 1-м выполнении цикла n=1. При последнем выполнении цикла n=101. Вопрос: сколько раз выполнялся цикл? Ответ: не 100-1 = 100 раз, а 101-1+1 = 101 раз! Ты забыл прибавить 1. Чтобы проверить себя проще всего взять два небольших числа и посчитать, загибая пальцы.
      Например, от n=3 до n=6 цикл выполнится не 6-3 раз, а {три, четыре, пять, щесть} - 4 раза. Удачи!

 
 

Ответить Иван

 




 
 

 
 
Яндекс.Метрика