Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Задачи. Turbo Pascal (https://forum.antichat.xyz/showthread.php?t=120403)

Richard 13.05.2009 15:02

Задачи. Turbo Pascal
 
Может кто-нить помочь три задачки решить?

1. Дан массив из N элементов. Каждый элемент равен 0, 1 или 2; нужно переставить элементы так, чтобы сначала располагались все нули, затем все единицы, а после них - двойки

2. Найти количество элементов в массиве, больших среднего арифметического всех элементов массива.

3.Задан массив из N элементов. Определить максимальный элемент.

Заранее спасибо

МongBa† 13.05.2009 16:37

Максимально приблизил к паскалю (писал на делфи) но могут быть ошибки..

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.


Richard 13.05.2009 16:53

МongBa† спасибо, но мне нужно чтоб все операторы были паскалевскими =))) у нас училка докопается =) Я б ей на C++ написанные программки сдал, но ей именно в паскале надо, т.к. она ничё кроме паскаля не знает =))))

МongBa† 13.05.2009 17:35

Дак вроде и так вроде все паскаль... )
неуверен на счет
inc(bolwe) заменить на bolwe:=bolwe+1
и inttostr (не помню, мб в паскале аналог по другому звучит)

Richard 13.05.2009 18:16

не, ты не понял... хм... как бы объяснить... кароче, мне нужно чтоб задачи были решены подобно этой...
мне первую решили, уже не нужно..



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.

Richard 13.05.2009 18:17

вот с использованием только циклов мне надо решить задачи... первую решили мне уже...

SmanxX1 13.05.2009 18:42

2:
PHP код:

const
     
ARR_MAX=200;
var
   
a:array[1..ARR_MAXof 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:
PHP код:

const
     
ARR_MAX=200;
var
   
a:array[1..ARR_MAXof 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


Richard 13.05.2009 20:21

спасибо

Richard 15.05.2009 20:45

Кто может ещё одну задачку решить с помощью циклов?

Условие задачи: Дан массив размера N и целые числа K и L (1<K<L<N). Найти среднее арифметическое элементов массива с числами от L до K включительно.

заранее спасибо!

Fata1ex 15.05.2009 20:57

Код:

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.



Время: 14:30