• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Экзаменационная задача на массив

Ксюшенька

Новые
Регистрация
18 Май 2011
Сообщения
17
Реакции
0
Баллы
0
Экзаменационная задача на массив

помогите, пожалуйста, решить экзаменационную задачу на массив!!!плиз...
В одномерном массиве, состоящем из n целочисленных элементов, вычислить:
1)Произведение элементов массива с четными номерами.
Преобразовать массив таким образом чтобы сначала располагались все положительные элементы, а потом все отрицательные (элементы, равные нулю, считать положительными).
Пожалуйста, от этого зависит моя как бы семестровая оценка!
 
помогите, пожалуйста, решить экзаменационную задачу на массив!!!плиз...
В одномерном массиве, состоящем из n целочисленных элементов, вычислить:
1)Произведение элементов массива с четными номерами.
Преобразовать массив таким образом чтобы сначала располагались все положительные элементы, а потом все отрицательные (элементы, равные нулю, считать положительными).
Пожалуйста, от этого зависит моя как бы семестровая оценка!
Во-первых, интересуюсь понять, почему, прекрасно зная, что у нас не принято цепляться к чужим темам, Вы продолжаете этим заниматься? Позлить нас хотите? "Крутость" свою показать? Ну-ну...
Ладно. Вот Вам как бы решение Вашей как бы задачи:
Код:
const
 n=10;
var
 mas,m1,m2:array[1..n] of Integer;
 i,j1,j2:integer;
 P:Extended;

begin
 Randomize;
 for i:=1 to n do
  begin
   mas[i]:=50-Random(100);
   Write(mas[i]:5);
  end;
 writeln;
 P:=1.0;
 for i:=1 to (n div 2) do
  P:=P*mas[2*i];
 writeln('Product of even-placed elements = ', P:0:0);

 j1:=0;
 j2:=0;
 for i:=1 to n do
  begin
   if mas[i]>=0 then
    begin
     j1:=j1+1;
     m1[j1]:=mas[i];
    end
   else
    begin
     j2:=j2+1;
     m2[j2]:=mas[i];
    end;
  end;
 for i:=1 to j1 do
  mas[i]:=m1[i];
 for i:=j1+1 to n do
  mas[i]:=m2[i-j1];
 for i:=1 to n do
  write(mas[i]:5);
 readln
end.
 
Извините, пожалуйста, подскажите, в чем может быть ошибка, набираю программу, все как написали, а программа не работает..
Extended, жалуется на него!
 
Извините, пожалуйста, подскажите, в чем может быть ошибка, набираю программу, все как написали, а программа не работает..
Extended, жалуется на него!
Ну замените Extended на Real, если уж у Вас Паскаль такой убого-ущербный.
И потом - зачем ее "набирать"? Не умеете через copy-paste?
 
заменяла, все равно!!!
Увы...но, нет!
Тогда так.
1. Листинг программы, которая не идет. Если набивали сами (непонятно зачем), могли сделать ошибку.
2. Максимум информации об ошибке (в какой строке, позиции, что именно пишет).
Еще раз обращаю внимание - у меня эта программа работает безупречно. Неотлаженных я не выкладываю.
 
Сейчас еще сообразил: если Вы меняете формат с Extended на Real, то диапазон значений элементов массива необходимо ужать. Например, строку
mas:=50-Random(100);
заменить на
mas:=10-Random(20);
 
invalid FOR control variable

for i:=1 to n do
не пойму, в чем может быть проблема!!!
 
не могли, бы подсказать как через copy-paste?
Наводите мышь на самое начало программы - так, чтобы маркер был перед первым символом. Удерживая нажатой ЛЕВУЮ клавишу, ведите мышь до конца листинга. Отпускаете мышь. Программа должна быть выделена инверсией цветов. Наводите мышь в любое место выделенной области, нажимаете ПРАВУЮ клавишу. В появившемся контекстном меню щелкаете по пункту "копировать" или "copy". Открываете окно, куда хотите вставить текст. Наводите на его поле мышь, нажимаете ПРАВУЮ клавишу и в меню щелкаете по "вставить" ("paste"). Сохраняете файл.
invalid FOR control variable

for i:=1 to n do
не пойму, в чем может быть проблема!!!
Я тоже не пойму, точнее вижу, что в кривом Паскале. Давайте попробуем радикально:
1. Константу убираем (снимаем весь раздел Const).
2. Всюду в программе n заменяем явным значением 10 (вместо n div 2 можно поставить просто 5).
 
var
mas,m1,m2:array[1..10] of Integer;
i,j1,j2:integer;
P:real;

begin
Randomize;
for i:=1 to 10 do
begin
mas:=10-Random(20);
Write(mas:5);
end;
writeln;
P:=1.0;
for i:=1 to 5 do
P:=P*mas[2*i];
writeln('Product of even-placed elements = ', P:0:0);

j1:=0;
j2:=0;
for i:=1 to 10 do
begin
if mas>=0 then
begin
j1:=j1+1;
m1[j1]:=mas;
end
else
begin
j2:=j2+1;
m2[j2]:=mas;
end;
end;
for i:=1 to j1 do
mas:=m1;
for i:=j1+1 to 10 do
mas:=m2[i-j1];
for i:=1 to 10 do
write(mas:5);
readln
end.[/CODE][/QUOTE]
 
Дорогая Ксюшенька, мне очень жаль, но больше я ничем помочь не могу. Сейчас скопипастил ваш листинг к себе - и транслируется, и запускается, и считает. Ошибок нет.
Так что либо у Вас совсем никудышный глючный Паскаль, либо неполадки в системе (перегрев процессора, сбойная ОЗУ, вирус, наконец, и т.д. и т.п.).
Увы!
 
Ну, все равно большое спасибо!Я очень Вам благодарна...будем пробовать на другом компьютере.)))
 
Назад
Сверху