Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2012, 17:39   #1
андрей999
Новичок
Джуниор
 
Регистрация: 27.10.2012
Сообщений: 2
По умолчанию Массив

Помогите пожалуйста решить задачу:
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1. Количество элементов массива, больших С; величину С задать с клавиатуры.
2. Произведение и количество элементов массива, расположенных после максимального по модулю элемента
3. Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом — все положительные (элементы, равные 0, считать положительными).
андрей999 вне форума Ответить с цитированием
Старый 27.10.2012, 18:18   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Показывайте свои наработки, пусть и неправильные.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 27.10.2012, 18:23   #3
андрей999
Новичок
Джуниор
 
Регистрация: 27.10.2012
Сообщений: 2
По умолчанию

вот сделал 1 и 3 часть примерно
Код:
 program hhh;
var
a:array[1..100] of real;
i,p,n:integer;
s:real;
begin
writeln('Ввести C=');
readln(s);
  writeln('Ввести количество элементов-');
  readln(p);

for i:=1 to p do
read(a[i]);{считываем массив}
n:=0;
for i:=1 to p do
if a[i]>s then inc(n);
write(' Количество элементов-',n);
end.

Код:
Program Zadacha3;

uses crt;

const n=100;

procedure obmen (var x,y: integer);

var t:integer;

begin t:=x;

x:=y;

y:=t;

end;

var

A:array [1..n] of integer;

i,k,j:integer;

begin

clrscr;

writeln ('vvedite razmer massiva');

readln (k);

writeln ('vvedite elementy massiva');

for i:=1 to k do

readln (A[i]);

for j:=1 to k-1 do

for i:=1 to k-j do

if A[i]>A[i+1] then

obmen (A[i], A[i+1]);

writeln ('resultat:');

for i:=1 to k do

writeln (A[i]);

readln;

end.
андрей999 вне форума Ответить с цитированием
Старый 27.10.2012, 18:37   #4
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

2)

Код:
var
{Задаш массив}
max, max_index, count, i, j: integer;
D: real;

begin
{Ввод массива }
...
max:=a[1];max_index:=1;
for i:=1 to n do begin
   if a[i] > max then begin
      max:=a[i];
      max_index:=i;
   end;
end;
d:=1; count:=0;
for i:=max_index+1 to n do begin
     d:=d*a[i];
     inc(count);
end;

writeln(count,'   ',d:3:2);
...
Ещё учти такую штуку что максимальный элемент может быть и в конце массива, тогда тебе надо будет добавить условие ... ( подумай и доделай сам )
Люблю на ты.Я человек простой

Последний раз редактировалось Leshii; 27.10.2012 в 18:40.
Leshii вне форума Ответить с цитированием
Старый 27.10.2012, 18:39   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Так.
Первая написана правильно, только имена лучше брать из задачки, чтобы не путаться.
Код:
program n1;

const
  maxsize = 100;

var
  a: array[1..maxsize] of real;
  i, n, count: integer;
  c: real;

begin
  writeln('Ввести C = ');
  readln(c);
  writeln('Ввести количество элементов = ');
  readln(n);
  for i := 1 to n do
    read(a[i]);
  count := 0;
  for i := 1 to n do
    if a[i] > c then inc(count);
  write(' Количество элементов = ', count);
  readln;
end.
Третья тоже правильно.
(изменил сортировку чуть, т.к. не знаю приведенной Вами)
Код:
program Zadacha3;

uses
  crt;

const
  n = 100;

procedure obmen(var x, y: integer);
var
  t: integer;
begin
  t := x; 
  x := y; 
  y := t; 
end;

var
  A: array [1..n] of integer;
  i, k, j: integer;

begin
  clrscr;
  writeln('vvedite razmer massiva');
  readln(k);
  writeln('vvedite elementy massiva');
  for i := 1 to k do 
    read(A[i]);
  for j := 1 to k - 1 do
    for i := j + 1 to k do
      if A[j] > A[i] then
        obmen(A[j], A[i]);
  writeln('resultat:');
  for i := 1 to k do
    write(A[i], ' ');
  readln;
  readln;
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 27.10.2012 в 18:42.
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С# задан массив 5х5. сформировать массивы А и В. в массив А поместить элементы с четными индексами, в массив В с нечетны Koksa Помощь студентам 0 10.10.2011 11:26
Запись координат в массив в реал тайм, Как записать координаты в массив Dark19 Visual C++ 2 21.06.2011 18:45
Из массив А получить массив В, удвоив все нечётные элементы удвоены ( на Pascal) KARTER Помощь студентам 1 18.06.2011 19:58
Массив - Нужно написать массив и распечатать на экран с конца в начало(язык С++) econ Помощь студентам 1 29.05.2011 22:02