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

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

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

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

Листинг, программа №2

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

Altana

Новые
Регистрация
12 Апр 2012
Сообщения
28
Реакции
0
Баллы
0
Листинг, программа №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.
 
После readln(z);
Вот с этого момента пожалуйста tehno015
 
Прежде всего, программу нужно доделать. Где у Вас определено исходное значение переменной k? Не вижу такого. Да и зачем оно вообще нужно? Почему бы не поставить вместо
If k=s then
условие
If S=0 then ? И не надо никакого k вовсе. Между прочим, вводить переменную S тоже большой нужды нет: после ввода значений матрицы и вывода ее на экран исходное значение M больше не нужно, и можно работать прямо с ним. Но это так, к слову.
P.S. А, нет - прошу прощения, недосмотрел - у Вас же М - константа. Тогда с S всё правильно. Виноват-с.
 
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;

спасибо, исправлено)
 
will you help, please? комментарии...
 
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?
 
и для чего вводится переменные t and p?
Это Вы у МЕНЯ спрашиваете? Но... это не моя программа. Впрочем, отвечу. Переменная t вводится для балды, никакого смысла ее введение не имеет, вполне можно обойтись той же i. Другое дело p. Эта нужна. Ведь переменная j занята: это номер столбца, подлежащего изничтожению, и пока происходит сдвиг значений элементов матрицы, трогать ее нельзя. Вот и приходится вводить другую, вспомогательную переменную.
 
ясен) спасибо))
 
Назад
Сверху