Решение задач типа В4 ГИА по информатике

Тема - "Цик­ли­че­ский алгоритм об­ра­бот­ки массива чисел, за­пи­сан­ный на ал­го­рит­ми­че­ском языке"

Задача. В таб­ли­це Dat хра­нят­ся дан­ные из­ме­ре­ний сред­не­су­точ­ной тем­пе­ра­ту­ры за 10 дней в гра­ду­сах (Dat[1] — дан­ные за пер­вый день, Dat[2] — за вто­рой и т. д.). Опре­де­ли­те, какое число будет на­пе­ча­та­но в ре­зуль­та­те ра­бо­ты сле­ду­ю­щей про­грам­мы. Текст про­грам­мы при­ведён на трёх язы­ках про­грам­ми­ро­ва­ния.

 

Ал­го­рит­ми­че­ский язык Бей­сик Пас­каль
алг          
нач          
цел­таб Dat[1:10]       
цел к,        m       
Dat[1]    := 12    
Dat[2]    := 15    
Dat[3]    := 17    
Dat[4]    := 15    
Dat[5]    := 14    
Dat[6]    := 12    
Dat[7]    := 10    
Dat[8]    := 13    
Dat[9]    := 14    
Dat[10]   := 15    
m := 0           
нц для к от 1 до    10
если Dat[к] > m то
m : =     Dat[к]    
все          
КЦ              
вывод m              
КОН

 

DIM Dat(10) AS INTEGER
DIM k,m AS INTEGER     
Dat(1) = 12:        Dat(2) =   15
Dat(3) = 17:        Dat(4) =   15
Dat(5) = 14:        Dat(6) =   12
Dat(7) = 10:        Dat(8) =   13
Dat(9) = 14:        Dat(10) =  15
m = 0            
FOR k := 1 TO 10   
IF Dat(k) > m THEN        
m = Dat(k)         
ENDIF            
NEXT k           
PRINT m

 

Var k, m: integer;      
Dat: array[1...10] of integer;
Begin                    
Dat[1]    := 12;    Dat[2]    := 15;
Dat[3]    := 17;    Dat[4]    := 15;
Dat[5]    := 14;    Dat[6]    := 12;
Dat[7]    := 10;    Dat[8]    := 13;
Dat[9]    := 14;    Dat[10]   := 15;
m := 0;                   
for k :=  1 to     10 do    
if Dat[k] > m then        
begin            
m := Dat[k]        
end;                      
writeln(m);                
End.

 

 По­яс­не­ние.

Про­грам­ма пред­на­зна­че­на для на­хож­де­ния мак­си­маль­но­го зна­че­ния сред­не­су­точ­ной тем­пе­ра­ту­ры. Про­ана­ли­зи­ро­вав вход­ные дан­ные, при­хо­дим к вы­во­ду, что ответ 17.

Задача. В таб­ли­це Work хра­нят­ся дан­ные о ко­ли­че­стве за­ка­зов, при­ня­тых фир­мой «Алоэ» с пер­во­го по 15 но­яб­ря. (Work[1] − число за­ка­зов, при­ня­тых 1 но­яб­ря, Work[2] − 2 но­яб­ря и т. д.). Опре­де­ли­те, какое число будет на­пе­ча­та­но в ре­зуль­та­те ра­бо­ты сле­ду­ю­щей про­грам­мы. Текст про­грам­мы при­ведён на трёх язы­ках про­грам­ми­ро­ва­ния:

 

Ал­го­рит­ми­че­ский язык Бей­сик Пас­каль
алг           
нач          
цел­таб Work[1:15]      
цел к,        m       
Work[1] := 5; Work[2] := 4
Work[3] := 5; Work[4] := 7
Work[5] := 6; Work[6] := 12
Work[7] := 7; Work[8] := 3
Work[9] := 9; Work[10] := 7
Work[11] := 0;Work[12] := 9
Work[13] := 1;Work[14] := 0
Work[15] := 8
m := 0   
нц для к от 1 до    15
если Work[k] < 7 то
m : =     m+1     
все          
КЦ              
вывод m              
КОН

 

DIM Work(15) AS INTEGER
DIM k,m AS INTEGER
Work(1)= 5: Work(2)= 4
Work(3)= 5: Work(4) = 7
Work(5)= 6: Work(6)= 12
Work(7)= 7: Work(8)= 3
Work(9)= 9: Work(10)= 7
Work(11)= 0: Work(12)= 9
Work(13)= 1: Work(14)= 0
Work(15)= 8
m = 0
FOR k = 1 TO 15
IF Work(k) < 7 THEN
m = m + 1
END IF
NEXT k
PRINT m

 

Var k, m: integer;
Work: array[1..15] of integer;
Begin
Work[1] := 5; Work[2] := 4;
Work[3] := 5; Work[4] := 7;
Work[5] := 6; Work[6] := 12;
Work[7] := 7; Work[8] := 3;
Work[9] := 9; Work[10] := 7;
Work[11] := 0; Work[12] := 9;
Work[13] := 1; Work[14] := 0;
Work[15] := 8;
m := 0;
For k := 1 to 15 Do
If Work[k] < 7 Then
Begin
m := m + 1;
End;
Writeln(m);
End.

 

 По­яс­не­ние.

Про­грам­ма пред­на­зна­че­на для на­хож­де­ния ко­ли­че­ства дней, в ко­то­рые в фирму по­сту­пи­ло менее семи за­ка­зов. Про­ана­ли­зи­ро­вав вход­ные дан­ные, при­хо­дим к вы­во­ду, что ответ 8.