Просмотр полной версии : Задачи. Turbo Pascal
Может кто-нить помочь три задачки решить?
1. Дан массив из N элементов. Каждый элемент равен 0, 1 или 2; нужно переставить элементы так, чтобы сначала располагались все нули, затем все единицы, а после них - двойки
2. Найти количество элементов в массиве, больших среднего арифметического всех элементов массива.
3.Задан массив из N элементов. Определить максимальный элемент.
Заранее спасибо
Максимально приблизил к паскалю (писал на делфи) но могут быть ошибки..
1.
const
N=10;
var
i1,i2,i:integer;
mas:array[1..N] of integer;
begin
//...//
for i1:=1 to N do
for i2:=1 to N do
if mas[i2]>mas[i1] then
begin
i:=mas[i2];
mas[i2]:=mas[i1];
mas[i1]:=i;
end;
for i:=1 to N do writeln(inttostr(mas[i]));
readln;
end.
2.
const
N=10;
var
all,bolwe,i:integer;
srednee:real;
mas:array[1..N] of integer;
begin
//...//
all:=0;
for i:=1 to N do all:=all+mas[i];
srednee:=all/N;
bolwe:=0;
for i:=1 to N do if mas[i]>srednee then inc(bolwe); //bolwe:=bolwe+1
writeln(inttostr(bolwe));
readln;
end.
3.
const
N=10;
var
max,i:integer;
mas:array[1..N] of integer;
begin
//...//
max:=0;
for i:=1 to N do
if max<mas[i] then max:=mas[i];
writeln(inttostr(max));
readln;
end.
МongBa† спасибо, но мне нужно чтоб все операторы были паскалевскими =))) у нас училка докопается =) Я б ей на C++ написанные программки сдал, но ей именно в паскале надо, т.к. она ничё кроме паскаля не знает =))))
Дак вроде и так вроде все паскаль... )
неуверен на счет
inc(bolwe) заменить на bolwe:=bolwe+1
и inttostr (не помню, мб в паскале аналог по другому звучит)
не, ты не понял... хм... как бы объяснить... кароче, мне нужно чтоб задачи были решены подобно этой...
мне первую решили, уже не нужно..
var a,c,d,b: array [1..100] of integer;
j, i, n, k,h,e: integer;
begin
readln(n);
for i:=1 to n do begin read (a[i]);
j:=1; k:=1; h:=1;
for i:=1 to n do begin begin begin
if a[i]=0 then begin b[j]:=a[i]; j:=j+1; end;
if a[i]=1 then begin c[k]:=a[i]; k:=k+1; end;
if a[i]=2 then begin d[h]:=a[i]; e:=e+1; end; end; end;end;
for i:=1 to j do begin write (' ',b[j]) end;
for i:=1 to k do begin write (' ',c[k]) end;
for i:=1 to h do begin write (' ',d[h]) end;
end;
readln
end.
вот с использованием только циклов мне надо решить задачи... первую решили мне уже...
2:
const
ARR_MAX=200;
var
a:array[1..ARR_MAX] of Real;
sr:Extended;
n,i:Integer;
begin
WriteLn('N='); Read(n);
for i:=1 to n do
begin
ReadLn(a[i]);
sr:=sr+a[i];
end;
sr:=sr/n;
for i:=1 to n do
if a[i]>sr then WriteLn(a[i]:10:6);
end.
3:
const
ARR_MAX=200;
var
a:array[1..ARR_MAX] of Integer;
n,i,max:Integer;
begin
WriteLn('N='); Read(n);
for i:=1 to n do ReadLn(a[i]);
max:=a[1];
for i:=2 to n do
if a[i]>max then max:=a[i];
WriteLn(max);
end.
Кто может ещё одну задачку решить с помощью циклов?
Условие задачи: Дан массив размера N и целые числа K и L (1<K<L<N). Найти среднее арифметическое элементов массива с числами от L до K включительно.
заранее спасибо!
const
N=100;
var
a : array[1..N] of integer;
k, l, i, s : integer;
begin
//Считываешь параметры
s:=0;
for i:=k to l do
s:=s+a[i]
writeln(s/(l-k));
readln;
end.
Ёщё задачка:
Дан одномерный целочисленный массив. Составить программу определения индекса(-ов) минимального элемента массива. Именно номера(индекса) ячейки в которой расположен минимальный член массива!
min:=a[1];
for i:=2 to N do
if a[i]<min then
min:=a[i]
for i:=1 to N do
if a[i]=min then
writeln(i);
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot