Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ массивы

Автор: KiberPunk 2.12.2008 1:03

люди помогите пожалста. я в паскале дуб. первый раз его увидел на первой паре по программированию и препоша ничего не обьсняя сказала пишите прогу
но проблема вот в чем : 10 декабря надо здать 4 проги если нездам то выхожу на сессию и ппц я её заваливаю и мя выгоняют с первого курса помогите плиз

1)дан одномерный массив размера N вывести его элементы в обратном порядке
2)дан целочисленный одномерный массив размера N вывести вначале все его четные1|нечетные2 элементы а затем нечетные1|четные2
3)дана матрица размера 5х9 Найти суммы элементов всех её четных1|нечетных2 строк1|столбцов2
4)дана матрица размером MxN поменять местами её строки1|столбци2 так чтобы их минимальные3|максимальные4 элементы образовывали возрастающюю5|убывающюю последовательность
заранее благодарю

Автор: renesko1 2.12.2008 1:14

http://forum.pascal.net.ru/index.php?showtopic=2694
Куча, примеров, лёгко и просто, если что нить именно не понятно, то спрашивай smile.gif

Автор: KiberPunk 2.12.2008 1:39

подскажи для чего в данный код введена процедура?

Цитата
Procedure ReadMatr(var A:Matrix; var n,m:word );

Автор: renesko1 2.12.2008 2:24


Procedure ReadMatr(var A:Matrix; var n,m:word );
var
i,j:word;
begin
repeat
write('Введите количество строк: '); readln(N);
until (N>0) and (N<=NN);
repeat
write('Введите количество столбцов: '); readln(m)
until (M>0) and (M<=MM);
For i:=1 to n do
begin
For j:=1 to m do
begin
write('A[',i,j,']= ');
readln(A[i,j])
end
end
end;




Эта процедура служит для "создания" матрицы, ты вводишь кол-во столб. и строк матрицы, и заполняешь её.
(но сама матрица описана в type'ах выше)

Автор: KiberPunk 2.12.2008 2:27

тоесть я в константах написал количество строк и столбцов но в теле программы мне всеравно надобудет писать их количество?

Автор: volvo 2.12.2008 2:42

Цитата
тоесть я в константах написал количество строк и столбцов
В константах ты задал максимально возможные размеры матрицы, а в тексте программы будешь вводить размер, с которым пользователь будет работать. Если ты изначально знаешь точный размер, то работай только с константами...

Автор: KiberPunk 2.12.2008 19:10

а как использовать процедуру?

Автор: renesko1 2.12.2008 20:32

Замечание Volvo очень важное, во-сновном в условиях задач сказанны размеры матрицы.
Для выполнения твоих заданий, лучше обойтись без этой процедуры. Так как размеры заранее известны.

Автор: KiberPunk 2.12.2008 20:49

да я бы с радостью не писал процедуры но это обязательное условие
кста я разобрался
у меня новый вопрос : во второй задаче мне нужно вывести все нечетные/четные а у меня получается что я вывожу только последнее чотное и последнее нечотное
вот код проги

 PROGRAM zadacha2;
uses crt;
const N=10;
type myarray = array[1..N] of Integer;
var a : myarray;
i,ch,nch : Integer;
Procedure Chotnoe(a:integer;var ch:integer);
begin
if (a mod 2 =0) then ch:=a ;
end;
Procedure Nechotnoe(a:integer; var nch:integer);
begin
if (a mod 2<>0) then nch:=a;
end;
begin
clrscr;
randomize;
for i:=1 to N do
a[i] := Trunc(random(100));

for i:=1 to N do
write(a[i], ' ');
writeln; writeln;

for i:=1 to N do
Chotnoe(a[i],ch);
Nechotnoe(a[i],nch);
writeln('chotnoe', ch,'nechotnoe', nch);

readln;
end.


М
Теги!!


Автор: Ozzя 2.12.2008 22:31

for i:=1 to N do
begin
Chotnoe(a[i],ch);
Nechotnoe(a[i],nch);
writeln('chotnoe', ch,'nechotnoe', nch);
end;

Автор: KiberPunk 2.12.2008 22:39

Цитата(Ozzя @ 2.12.2008 20:31) *

for i:=1 to N do
begin
Chotnoe(a[i],ch);
Nechotnoe(a[i],nch);
writeln('chotnoe', ch,'nechotnoe', nch);
end;



благодарю

Автор: renesko1 3.12.2008 0:48

2) надо сделать так: если ты хочешь с процедурами...


procedure chet (const a : integer) ;
begin
if (a mod 2 = 0) then write('chet : ',a,' ');
end ;

....

///с нечёт аналогично

....

for i := 1 to n do
begin
chet(a[i]);
nechet(a[i]);
writeln ;
end ;



Автор: KiberPunk 3.12.2008 3:35

а ты мог бы приблизительно набросать задачу 3?

Автор: Lapp 3.12.2008 5:26

Цитата(KiberPunk @ 2.12.2008 23:35) *
а ты мог бы приблизительно набросать задачу 3?
Ты записался добровольцем??
М
Личные вопросы - в личной переписке




Вот тебе сумма четных строк матрицы 5 строк х 9 столбцов.

s:=0;
for j:=1 to 5 do if not Odd(j) then for i:=1 to 9 do s:=s+a[j,i];