1) var a:array[1..20] of integer; index, Min,count, i, n:integer; begin Readln(n); Min:= 81;index:=-1; For i:= 1 to n do begin a[i]:= random(96) - 15; Write(a[i], ' '); if Min = a[i] then count:= count+1; if Min > a[i] then begin Min:=a[i]; index:=i; count:=1; end; end; Writeln; Writeln('Min = ', Min); Writeln('Минимумов: ', count, ' их сумма равна ', count*Min); for i:= n downto 2 do if (a[i] < 0) and (a[i-1] < 0) then begin Write('Номера соседних отрицательных эл-в -> '); Writeln(i-1, ' ', i); break; end; end.
Пример: 20 59 -3 44 -15 60 -3 70 -15 -10 1 -1 -2 21 23 -5 24 45 -10 0 48 Min = -15 Минимумов: 2 их сумма равна -30 Номера соседних отрицательных эл-в -> 11 12
2)
var a,b:array[1..200] of integer; i, n,cnt, j, Max:integer; begin Readln(n); Read(a[1]);Max:=a[1];cnt:=1; For i:= 2 to n do begin Read(a[i]); if a[i] = max then cnt:= cnt+1; if a[i] > max then begin max:=a[i]; cnt:=1; end; end; j:=1; for i:=1 to n do if a[i] < Max then begin b[j]:=a[i]; j:= j+1; end; for i:= j to n do b[i]:=Max; for i:=1 to n do Write(b[i], ' '); end.
Пример: 6 1 5 3 2 5 0 1 3 2 0 5 5
type Info = record name:string; unpl:integer;//unemployment end;
var a:array[1..40] of Info; tmp:Info; i, j:integer; begin For i:= 1 to 40 do begin Readln(a[i].name); Readln(a[i].unpl); end; For i:= 1 to 40 do for j:= i to 40 do if a[i].unpl > a[j].unpl then begin tmp.name:= a[i].name; tmp.unpl:= a[i].unpl; a[i].name:=a[j].name; a[i].unpl:=a[j].unpl; a[j].name:=tmp.name; a[j].unpl:=tmp.unpl; end; Writeln('три неблагополучных района:') Writeln(a[40].name); Writeln(a[39].name); Writeln(a[38].name); Writeln('три наиболее благополучных'); Writeln(a[1].name); Writeln(a[2].name); Writeln(a[3].name); end.
1. Внимательно читаете задачу. Вникаете в смысл. Выясняете, все ли термины известны и понятны. Детально представляете себе ситуацию задачи или как идет прощесс, описанный в задаче.
2. Записываете данные.
3. Записываете, что нужно найти.
4. Вспоминаете все возможные соотношения и формулы, связывающие параметры, данные в задаче, с тем параметром, который нужно найти.
5. Решаете задание в общем виде - это значит выводите формулу, в которой известны все величины, кроме искогомого. Подставляете известные значения в формулу и вычисляете. Можно делать вычисления и постадийно - это уж как вам удобно.
6. Проверяете размерности. В конечную формулу вместо числовых значений подставляются размерности соответствующих величин. Если конечная размерность не соответствует размерности искомого, значит нужно искать ошибку. Если соответсвует, то это еще не полная гарантия, что ответ правильный.
7. Проверка. Решаем обратную задачу: считаем, что какое-либо из первоначальных данных неизвестно, и на основании найденного ответа вычисляем этот "условно неизвестный параметр". Если результат вычислений совпадает в данными, значит задача решена верно. Если нет - ищите ошибку.
var
a:array[1..20] of integer;
index, Min,count, i, n:integer;
begin
Readln(n);
Min:= 81;index:=-1;
For i:= 1 to n do
begin
a[i]:= random(96) - 15;
Write(a[i], ' ');
if Min = a[i] then
count:= count+1;
if Min > a[i] then begin
Min:=a[i];
index:=i;
count:=1;
end;
end;
Writeln;
Writeln('Min = ', Min);
Writeln('Минимумов: ', count, ' их сумма равна ', count*Min);
for i:= n downto 2 do
if (a[i] < 0) and (a[i-1] < 0) then
begin
Write('Номера соседних отрицательных эл-в -> ');
Writeln(i-1, ' ', i);
break;
end;
end.
Пример:
20
59 -3 44 -15 60 -3 70 -15 -10 1 -1 -2 21 23 -5 24 45 -10 0 48
Min = -15
Минимумов: 2 их сумма равна -30
Номера соседних отрицательных эл-в -> 11 12
2)
var
a,b:array[1..200] of integer;
i, n,cnt, j, Max:integer;
begin
Readln(n);
Read(a[1]);Max:=a[1];cnt:=1;
For i:= 2 to n do
begin
Read(a[i]);
if a[i] = max then
cnt:= cnt+1;
if a[i] > max then
begin
max:=a[i];
cnt:=1;
end;
end;
j:=1;
for i:=1 to n do
if a[i] < Max then
begin
b[j]:=a[i];
j:= j+1;
end;
for i:= j to n do
b[i]:=Max;
for i:=1 to n do
Write(b[i], ' ');
end.
Пример:
6
1 5 3 2 5 0
1 3 2 0 5 5
type Info = record
name:string;
unpl:integer;//unemployment
end;
var
a:array[1..40] of Info;
tmp:Info;
i, j:integer;
begin
For i:= 1 to 40 do
begin
Readln(a[i].name);
Readln(a[i].unpl);
end;
For i:= 1 to 40 do
for j:= i to 40 do
if a[i].unpl > a[j].unpl then
begin
tmp.name:= a[i].name;
tmp.unpl:= a[i].unpl;
a[i].name:=a[j].name;
a[i].unpl:=a[j].unpl;
a[j].name:=tmp.name;
a[j].unpl:=tmp.unpl;
end;
Writeln('три неблагополучных района:')
Writeln(a[40].name);
Writeln(a[39].name);
Writeln(a[38].name);
Writeln('три наиболее благополучных');
Writeln(a[1].name);
Writeln(a[2].name);
Writeln(a[3].name);
end.
Формат Ввода:
Название района
Безработица
1. Внимательно читаете задачу. Вникаете в смысл. Выясняете, все ли термины известны и понятны. Детально представляете себе ситуацию задачи или как идет прощесс, описанный в задаче.
2. Записываете данные.
3. Записываете, что нужно найти.
4. Вспоминаете все возможные соотношения и формулы, связывающие параметры, данные в задаче, с тем параметром, который нужно найти.
5. Решаете задание в общем виде - это значит выводите формулу, в которой известны все величины, кроме искогомого. Подставляете известные значения в формулу и вычисляете. Можно делать вычисления и постадийно - это уж как вам удобно.
6. Проверяете размерности. В конечную формулу вместо числовых значений подставляются размерности соответствующих величин. Если конечная размерность не соответствует размерности искомого, значит нужно искать ошибку. Если соответсвует, то это еще не полная гарантия, что ответ правильный.
7. Проверка. Решаем обратную задачу: считаем, что какое-либо из первоначальных данных неизвестно, и на основании найденного ответа вычисляем этот "условно неизвестный параметр". Если результат вычислений совпадает в данными, значит задача решена верно. Если нет - ищите ошибку.