Ппрограмма на Паскале как улучшить???
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Ппрограмма на Паскале как улучшить??? - 2008-12-25 14:44:18.073333
|
|
|
9off
Сообщений: 696
Оценки: 0
Присоединился: 2008-10-16 07:09:00.173333
|
Задача такова:Задан двумерный массив,вставить второй столбец после столбца в котором все элементы положительны… я сделала примерно так:program lab_7;
uses
crt;
var
mas:array[1..100,1..100] of integer;
spec:array[1..100,1..100] of integer;
x,y,p,q,z,a:integer;
begin
writeln('start...');
readkey;
clrscr;
write('kol-vo strok=');
read(p);
writeln('...');
write('kol-vo stolbzov=');
read(q);
x:=0;
clrscr;
while p>x do
begin
x:=x+1;
y:=0;
while q>y do
begin
write('elemetz of massiv=massive[') ;
write(x);
write(',');
write(y+1);
write(']=');
y:=y+1;
read(mas[x,y]);
clrscr;
end;
end;
for x:=1 to p do
for y:=1 to q do
begin
writeln(mas[x,y]);
end;
readkey;
clrscr;
for y:=1 to q do
begin
z:=0;
for x:=1 to p do
begin
if mas[x,y]>=0 then z:=z+1
else x:=p;
if z=p then
begin
z:=y;
x:=p;
y:=q;
end;
end;
end;
for x:=1 to p do
begin
writeln(mas[x,z]);
readkey;
end;
clrscr;
for x:=1 to p do
for y:=1 to z do
begin
spec[x,y]:=mas[x,y];
end;
writeln('vvedite stolbez ++');
read(a);
clrscr;
y:=z+1;
for x:=1 to p do
begin
spec[x,y]:=mas[x,a];
end;
for x:=1 to p do
for y:=y+1 to q+1 do
begin
a:=y-1;
spec[x,y]:=mas[x,a];
end;
for x:=1 to p do
for y:=1 to q+1 do
begin
writeln(spec[x,y]);
end;
readkey;
end. если не сложно подскажите как улучшить(как сделать красивый вывод матрицы) или что исправить что бы программа была по меньше, что бы сократить число используемых переменных и сделать всё с помощью одного массива(переменную а можно вообще убрать заменив её на z)… так то у меня есть пара идей по этому поводу…но хотелось бы послушать более опытных людей…
|
|
|
RE: Ппрограмма на Паскале как улучшить??? - 2008-12-25 18:06:05.990000
|
|
|
b[e]nd3p
Сообщений: 187
Оценки: 0
Присоединился: 2008-09-02 20:54:56.370000
|
Не могу долго читать оформи код как нормальный программист…
|
|
|
RE: Ппрограмма на Паскале как улучшить??? - 2008-12-25 19:28:23.233333
|
|
|
9off
Сообщений: 696
Оценки: 0
Присоединился: 2008-10-16 07:09:00.173333
|
а как её оформляет нормальный програмист….подскажи как я переделаю…
|
|
|
RE: Ппрограмма на Паскале как улучшить??? - 2008-12-25 19:38:50.063333
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: b[e]nd3p Не могу долго читать оформи код как нормальный программист… настоящий программист на любом языке может писать на фортране ;)
|
|
|
RE: Ппрограмма на Паскале как улучшить??? - 2008-12-25 20:37:04.636666
|
|
|
Данила88
Сообщений: 38
Оценки: 0
Присоединился: 2008-12-06 14:44:29.386666
|
Fortran77 Массив n*m(до первого столбца с пол. эл-ми) dimension a(1000,1000),b(1000),c(1000,1000) read(*,*)m,n do 2 i=1,n______________ построчная загрузка массива do 1 j=1,m read(*,*)a(i,j) if(a(i,j).gt.0) then w=w+1 endif 1 continue if(w.eq.m) then ________________установление "положительного"столбца l=j endif 2 continue if(l.eq.0) then write(1,*)'net poloj stolb' go to 111 endif do 4 i=1,n do 3 j=1,l c(i,j)=a(i,j) 3 continue 4 continue do 6 i=1,n do 5 j=l,m c(i,j+2)=a(i,j) 5 continue 6 continue do 6 i=1,n read(*,*)c(i,l+1) 6 continue do 8 i=1,n do 7 j=1,m+1 write(1,*)c(i,j)___________1-канал вывода 7 continue 8 continue 111 continue end a(1000,1000)-исходный массив с(1000,1000)-полученный массив
|
|
|
RE: Ппрограмма на Паскале как улучшить??? - 2008-12-25 20:38:11.560000
|
|
|
Данила88
Сообщений: 38
Оценки: 0
Присоединился: 2008-12-06 14:44:29.386666
|
Что-то такое…
|
|
|
RE: Ппрограмма на Паскале как улучшить??? - 2008-12-25 20:48:11.853333
|
|
|
MEPOX
Сообщений: 868
Оценки: 0
Присоединился: 2008-03-16 10:11:26.610000
|
Мне кажется что у тебя слишком много строк и они идут слишком в линию=) Писал бы простые операторы в одной строке, а то так перелистывать забадаешься.. И отступов у тя нету.
|
|
|
RE: Ппрограмма на Паскале как улучшить??? - 2008-12-25 20:52:54.070000
|
|
|
9off
Сообщений: 696
Оценки: 0
Присоединился: 2008-10-16 07:09:00.173333
|
попробую…
|
|
|
RE: Ппрограмма на Паскале как улучшить??? - 2008-12-25 21:02:09.006666
|
|
|
MEPOX
Сообщений: 868
Оценки: 0
Присоединился: 2008-03-16 10:11:26.610000
|
Давай я тебе напишу.. Только мне непонятно вот это – >вставить второй столбец после столбца в котором все элементы положительны… А если таких столбцов >1?
|
|
|
RE: Ппрограмма на Паскале как улучшить??? - 2008-12-25 21:09:01.620000
|
|
|
9off
Сообщений: 696
Оценки: 0
Присоединился: 2008-10-16 07:09:00.173333
|
program lab_7;
uses
crt;
var
mas:array[1..100,1..100] of integer;
spec:array[1..100,1..100] of integer;
x,y,p,q,z,a:integer;
begin
writeln('начало...'); readkey;
write('количество строк=');
read(p);
write('количество столбцов=');
read(q);
x:=0;
clrscr;
while p>x do
begin//заполнение массива...
x:=x+1; y:=0;
while q>y do
begin
write('элемент матрицы['); write(x); write(','); write(y+1); write(']=');
y:=y+1;
read(mas[x,y]); clrscr;
end;
end;
for x:=1 to p do//можно пропустить или удалить...
for y:=1 to q do
begin
writeln(mas[x,y]);
end;
readkey; clrscr;
for y:=1 to q do//поиск положительного столбца....
begin
z:=0;
for x:=1 to p do
begin
if mas[x,y]>=0 then z:=z+1
else x:=p;
if z=p then
begin
z:=y; x:=p; y:=q;
end;
end;
end;
for x:=1 to p do
begin//вставка столбца в массив после первого положительного столбца...
write(mas[x,z]);
end;
clrscr;
for x:=1 to p do
for y:=1 to z do
begin
spec[x,y]:=mas[x,y];
end;
writeln('укажите столбец который вы хотите вставить ');
y:=z+1;
read(z);
clrscr;
for x:=1 to p do
begin
spec[x,y]:=mas[x,z];
end;
for x:=1 to p do
for y:=y+1 to q+1 do
begin
z:=y-1;
spec[x,y]:=mas[x,z];
end;
for x:=1 to p do
for y:=1 to q+1 do
begin
writeln(spec[x,y]);
end;
readkey;
end.
так сойдёт…
|
|
|
RE: Ппрограмма на Паскале как улучшить??? - 2008-12-25 21:15:02.766666
|
|
|
9off
Сообщений: 696
Оценки: 0
Присоединился: 2008-10-16 07:09:00.173333
|
quote:
ORIGINAL: MEPOX Давай я тебе напишу.. Только мне непонятно вот это – >вставить второй столбец после столбца в котором все элементы положительны… А если таких столбцов >1? первый попавшийся… всё просто нужно что бы хотя бы один столбец был отрицательным….задачу то я в принципе решил….просто мне не нравиться вывод и прочая мутатень…хочу что бы матрица выводилась красиво….
|
|
|
RE: Ппрограмма на Паскале как улучшить??? - 2008-12-26 10:54:36.790000
|
|
|
MEPOX
Сообщений: 868
Оценки: 0
Присоединился: 2008-03-16 10:11:26.610000
|
>хочу что бы матрица выводилась красиво…. write(Q:4); ":" Задает отступ Будет нормально. Или я тебя не так понял?
|
|
|
RE: Ппрограмма на Паскале как улучшить??? - 2008-12-26 14:17:03.513333
|
|
|
b[e]nd3p
Сообщений: 187
Оценки: 0
Присоединился: 2008-09-02 20:54:56.370000
|
program lab_7; uses crt; var mas:array[1..100,1..100] of integer; spec:array[1..100,1..100] of integer; x,y,p,q,z,a:integer; begin writeln('начало…'); readkey; write('количество строк='); read(p); write('количество столбцов='); read(q); x:=0; clrscr; while p>x do begin//заполнение массива… x:=x+1; y:=0; while q>y do begin write('элемент матрицы['); write(x); write(','); write(y+1); write(']='); y:=y+1; read(mas[x,y]); clrscr; end; end; // не понял что делаешь? for x:=1 to p do//можно пропустить или удалить… for y:=1 to q do begin writeln(mas[x,y]); end; readkey; clrscr; // вот //кусок в принципе не нужен не увидел отрицательных элементов столбцов for y:=1 to q do//поиск положительного столбца…. begin z:=0; for x:=1 to p do begin if mas[x,y]>=0 then z:=z+1 else x:=p; if z=p then begin z:=y; x:=p; y:=q; end; end; end; // for x:=1 to p do begin//вставка столбца в массив после первого положительного столбца… write(mas[x,z]); end; clrscr; for x:=1 to p do for y:=1 to z do begin spec[x,y]:=mas[x,y]; end; writeln('укажите столбец который вы хотите вставить '); y:=z+1; read(z); clrscr; for x:=1 to p do begin spec[x,y]:=mas[x,z]; end; for x:=1 to p do for y:=y+1 to q+1 do begin z:=y-1; spec[x,y]:=mas[x,z]; end; for x:=1 to p do for y:=1 to q+1 do begin writeln(spec[x,y]); end; readkey; end. так только блоки посмотрел у тебя нет отрицательных столбцов, зачем тебе проводить поиск на положительный столбец?
|
|
|
RE: Ппрограмма на Паскале как улучшить??? - 2008-12-26 16:23:07.266666
|
|
|
9off
Сообщений: 696
Оценки: 0
Присоединился: 2008-10-16 07:09:00.173333
|
quote:
так только блоки посмотрел у тебя нет отрицательных столбцов, зачем тебе проводить поиск на положительный столбец? ….quote:
всё просто нужно что бы хотя бы один столбец был отрицательным так по задаче хотя ты прав можно и так схитрить…
|
|
|
|
|