Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Листинг, программа №2 (http://www.tehnari.ru/f41/t74087/)

Altana 28.05.2012 18:25

Листинг, программа №2
 
Помогите пожалуйста написать комментарии к каждой команде)
Дан двумерный массив "А". Пользователь вводит число. Если это число больше первой цифры из столбца, то этот столбец удаляется..


Program pr1;
Uses CRT;
Const N=5;
Const M=5;
var A:array[1..N,1..M] of integer;
s,i,j,k,p,t,z:integer;

Begin
s:=M;
ClrScr;
For i:=1 to N do
For j:=1 to M do A[i,j]:=random(20);
For i:=1 to N do begin
For j:=1 to M do write(A[i,j]:3);
Writeln;
End;



Writeln('vvedite chislo');
Readln(z);

j:=1;
While j<=S do
If A[1,j]>z then
begin
For t:=1 to N do
For p:=j to S-1 do
A[t,p]:=A[t,p+1];
S:=S-1;
end
else j:=j+1;

If k=s then write('vse ctolbci ydaleni') else
writeln;
For i:=1 to N do begin
For j:=1 to S do write(A[i,j]:3);
Writeln;
end;

Readln;
end.

Altana 28.05.2012 19:06

После readln(z);
Вот с этого момента пожалуйста tehno015

Vladimir_S 28.05.2012 19:35

Прежде всего, программу нужно доделать. Где у Вас определено исходное значение переменной k? Не вижу такого. Да и зачем оно вообще нужно? Почему бы не поставить вместо
If k=s then
условие
If S=0 then ? И не надо никакого k вовсе. Между прочим, вводить переменную S тоже большой нужды нет: после ввода значений матрицы и вывода ее на экран исходное значение M больше не нужно, и можно работать прямо с ним. Но это так, к слову.
P.S. А, нет - прошу прощения, недосмотрел - у Вас же М - константа. Тогда с S всё правильно. Виноват-с.

Altana 28.05.2012 19:58

If S=0 then write('vse ctolbci ydaleni') else
writeln;
For i:=1 to N do begin
For j:=1 to S do write(A[i,j]:3);
Writeln;
end;

спасибо, исправлено)

Altana 29.05.2012 12:26

will you help, please? комментарии...

Vladimir_S 29.05.2012 12:51

Цитата:

Сообщение от Altana (Сообщение 739818)
will you help, please?

Maybe you'll ask the concrete questions? For the each line commenting is too long and dull...

Altana 29.05.2012 12:59

no problems :) Only this part, please..
For t:=1 to N do
For p:=j to S-1 do
A[t,p]:=A[t,p+1];
S:=S-1;
end
else j:=j+1;

и для чего вводится переменные t and p?

Vladimir_S 29.05.2012 14:22

Цитата:

Сообщение от Altana (Сообщение 739850)
и для чего вводится переменные t and p?

Это Вы у МЕНЯ спрашиваете? Но... это не моя программа. Впрочем, отвечу. Переменная t вводится для балды, никакого смысла ее введение не имеет, вполне можно обойтись той же i. Другое дело p. Эта нужна. Ведь переменная j занята: это номер столбца, подлежащего изничтожению, и пока происходит сдвиг значений элементов матрицы, трогать ее нельзя. Вот и приходится вводить другую, вспомогательную переменную.

Altana 29.05.2012 15:47

ясен) спасибо))


Часовой пояс GMT +4, время: 11:57.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.