Задачка на одномерные масивы в Паскале. Помогите если не сложно)

  • Автор темы mcbeat
  • Дата начала
M

mcbeat

#1
Дано масив A розміру N. Вивести спочатку його елементи з парними номерами (у порядку зростання номерів), а потім — елементи з непарними номерами (також у порядку зростання номерів):
A2, A4, A6, …, A1, A3, A5, … ...
 
09.11.2009
665
1
#2
3.4. Публикации разрешены только на русском и белорусском языках. Исключения составляют публикации программного кода и цитирование англоязычных источников.
Код:
var a:array[1..10] of integer;
i:integer;
begin
for i:=1 to 10 do 
begin
writeln('vvedite element nomer ',i);
readln(a[i]);
end;
writeln('elementi s parnimi nomerami : ');
for i:=1 to 10 do
if i mod 2 = 0 then write(a[i],' ');
writeln;
writeln('elementi s ne parnimi nomerami : ');
for i:=1 to 10 do
if i mod 2 = 1 then write(a[i],' ');
readln;
end.
 
M

mcbeat

#3
Огромное спасибо за решение, насчет языка тоже спасибо, буду знать))))

Добавлено: Вот еще одна задача на одномерные масивы, помогите если не сложно, просто в программировании я ДУБ))))) :)

Дано массив размера N. Найти номера тех элементов массива, которые больше своего левого соседа, и количество таких элементов. Найденые номера выводить в порядке убывания.
 
09.11.2009
665
1
#4
Дано массив размера N. Найти номера тех элементов массива, которые больше своего левого соседа, и количество таких элементов. Найденые номера выводить в порядке убывания.
Вроде так:
Код:
var a:array[1..10] of integer;
i,k:integer;
begin
writeln('vvedite elementi');
for i:=1 to 10 do
begin
writeln('vvedite element nomer ',i);
readln(a[i]);
end;
k:=0;
writeln('nomera ');
for i:=10 downto 2 do
if a[i]>a[i-1] then begin k:=k+1; writeln(i); end;
writeln('kolichestvo = ',k);
readln;
end.
 
M

mcbeat

#5
Бльшое СПС за отзывчивость и понимание!!!!)))) :)
 
M

mcbeat

#6
Есть еще одна задачка, с котрой у меня туго.

вот она: 2. Дано массив размера N. Заменить каждый элемент массива на среднее арефметическое этого элемента и его соседей.

А вот то что получилось, но она работает как-то не правильно(((((


Код:
program reshenie; 
var i,n:integer; a:array [1..1000] of real; 
begin 
randomize; 
writeln('Введите размер массива'); 
readln(n); 
for i:=1 to n do 

begin 
a[i]:=random(100)+1; 
write(a[i]:4:2,' '); 
end; 
writeln; 
a[1]:=(a[1]+a[2])/2; 
for i:=2 to n-1 do 
a[i]:=(a[i]+a[i-1]+a[i+1])/3; 
a[n]:=(a[n]+a[n-1])/2; 
for i:=1 to n do 
write(a[i]:4:2,' '); 
readln; 
end.
 

hosm

* so what *
18.05.2009
2 442
6
#7
надо использовать временные переменные для значения текущего и предыдущего элементов
заменить кусок вычислений на подобное:
Код:
var ap,ai:real;
//...
ai:=a[1];
a[1]:=(ai+a[2])/2; 
for i:=2 to n-1 do
begin 
ap:=ai;
ai:=a[i];
a[i]:=(ap+ai+a[i+1])/3; 
end;
a[n]:=(a[n]+ai)/2; 
//...