Помощь - Поиск - Пользователи - Календарь
Полная версия: Целые числа
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Данила
Дан массив действительных чисел, размерность которого N. Подсчитать сколько в нём отрицательных, положительных и нулевых элементов.

Даны действительные числа а1,а2,... ,аn. Поменять местами наибольший и наименьший элементы.

Даны целые числа а1,а2,... ,аn. Вывести на печать только те числа, для которых выполняется аi <= i.
:molitva:
klem4
1)
Код
uses crt;
const n=5;
var x:array[1..n] of integer;
   s1,s2,s3:integer;
   i:integer;

Begin
  clrscr;
  s1:=0;
  s2:=0;
  s3:=0;
  for i:=1 to n do
   begin
      readln(x[i]);
      if x[i]>0 then inc(s1)
       else if x[i]<0 then inc(s2)
        else inc(s3);
   end;
   writeln;
   writeln('"+" ',s1);
   writeln('"-" ',s2);
   writeln('"0" ',s3);
   readln;
end.


2)
Код
uses crt;
const n=5;
var x:array[1..n] of integer;
   max,min,t:integer;
   i:integer;

Begin
  clrscr;
  for i:=1 to n do
   readln(x[i]);

  max:=1;
  min:=1;

  for i:=2 to n do
   begin
      if  x[i]>x[max] then
       max:=i;
      if x[i]<x[min] then
       min:=i;
   end;
   writeln;
  writeln('min',x[min]);
  writeln('max',x[max]);
  t:=x[min];
  x[min]:=x[max];
  x[max]:=t;
  writeln;
  for i:=1 to n do
   writeln(x[i]);
  readln;
End.



Все уже решалось по 100 раз, пользуйтесь поиском!
Nemo
По решению первого задания: в целях оптимизации нет смысла в цикле писать:
Код

else inc(s3);

Это лишние обращения к памяти. Гораздо проще после цикла вычислить:
Код

s3 := n - s1 - s2;
klem4
Цитата
Это лишние обращения к памяти. Гораздо проще после цикла вычислить:

Код

s3 := n - s1 - s2;


Я не задумывался и мне намного проще было написать
Код
else inc(s3)


Мне кажется в такой маленькой программе это не грает никакой роли.
klem4
Если уж на то пошло, то можно обойтись вообще без 3-й переменной :yes:
:low:
Код
uses crt;
const n=5;
var x:array[1..n] of integer;
  s1,s2:integer;
  i:integer;

Begin
 clrscr;
 s1:=0;
 s2:=0;
 for i:=1 to n do
  begin
     readln(x[i]);
     if x[i]>0 then inc(s1)
      else if x[i]<0 then inc(s2)
  end;
  writeln;
  writeln('"+" ',s1);
  writeln('"-" ',s2);
  writeln('"0" ', n-s1-s2);
  readln;
end.
APAL
3)
Код
Const n=5;
...
 For i:=1 to n do If m[i]<=i then Writeln(m[i]);
...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.