IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Массив, Одномерный массив
Wizzy
сообщение 4.11.2010 11:47
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


Здравствуйте, появились проблемы, при решении данной задачи:
Дан массив х вещественных чисел. Получить упорядоченный по невозрастанию массив, состоящий из чисел данного массива, находящихся между предпоследним и последним отрицательным членом. (Проверить массив на наличие элементов между ними)
program mass;

var
i, j, k, n, d: integer;
x: real;
a, s: array [1..10] of real;

begin
writeln('Программа выводит элементы массива, расположенные между предпоследним и последним отрицательными числами');
writeln('Введите количество элементов массива');
read(n);
k := 0;
j := 0;
writeln('Введите элементы массива');
for i := 1 to n do {Ввод массива}
read(s[i]);

while k <> 2 do {Нахождение двух отрицательных чисел}
begin
for i := 1 to n do {Проверяем массив}
begin
if s[i] < 0 {Если элемент массива отрицателен}
then
begin
a[i] := s[i]; {присваиваем отрицательные числа массива s массива a}
k := k + 1; {счётчит отрицательных элементов массива}
end;
end;
end;




for i := 1 to n - 1 do {упорядочивание массива по убыванию}
for j := i + 1 to n do
if s[i] < s[j] then
begin
x := s[i];
s[i] := s[j];
s[j] := x;
end;

for i := 1 to n do
write(s[i], ' '); {Вывод массива}
writeln;
end.


Прошу помощи с поиском предпоследнего и поледнего отрицательного числа wacko.gif и как можно организовать вывод конечного массива, просто если я записываю отрицательные числа в другой массив, на месте положительных получаются нули.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Wizzy
сообщение 4.11.2010 13:31
Сообщение #2





Группа: Пользователи
Сообщений: 5
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


Ну примерно так, массив развернул, нашёл последний и предпоследний элементы
Код
program mass;

const
  max = 10;

var
  i, j, k, n, d: integer;
  x, z: real;
  a, s, obrat: array [1..max] of real;

begin
  writeln('Программа выводит элементы массива, расположенные между предпоследним и последним отрицательными числами');
  writeln('Введите количество элементов массива');
  read(n);
  k := 0;
  j := 0;  
  writeln('Введите элементы массива');
  for i := 1 to n do  {Ввод массива}
    read(s[i]);
  
  for i := 1 to max do
    obrat[max - i + 1] := s[i];
  
  begin
    for i := 1 to max do {Проверяем массив}
    begin
      if obrat[i] < 0 {Если элемент массива отрицателен}
      then
      begin
        a[i] := obrat[i]; {присваиваем отрицательные числа массива s массива a}
        k := k + 1; {счётчит отрицательных элементов массива}
        if k = 2 then break;
      end;
    end;
  end;  
  
  for i := 1 to max - 1 do {упорядочивание массива по убыванию}
    for j := i + 1 to max do
      if a[i] < a[j] then
      begin
        x := a[i];
        a[i] := a[j];
        a[j] := x;
      end;
  
  for i := 1 to max do
    write(a[i], ' ');  {Вывод массива}
  writeln;
end.


подскажите, как дальше поступать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 31.07.2025 5:13
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"