|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.01.2007, 17:42 | #1 |
Новичок
Джуниор
Регистрация: 10.01.2007
Сообщений: 1
|
помогите, please...
помогите пожалуйста с оптимизацией и упрощением! заранее огромное, огромное спасибо!
задание: ввести двухмерный массив с клавиатуры. вывести его на эран, записать в файл. отсортировать массив по возрастанию, вывести на экран, дописать в файл. поменять местами первый элемент каждой строчки с последним, второй с предпоследним и т.д. вывести на экран, дописать в файл. по заданным двум числам все числа равные первому заменить на второе. вывести результат на экран и дописать в файл. а вот и прога. program exo; uses crt; type mas=array[1..50,1..50] of real; var a:mas; f:text; m,n,i,j,k:byte; x,y:real; t:boolean; procedure vivodek(var a:mas); begin for i:=1 to m do begin for j:=1 to n do begin write(a[i,j]:5:1,' '); end; writeln; end; end; procedure vivodfail(var a:mas); begin for i:=1 to m do begin for j:=1 to n do begin write(f,a[i,j]:5:1); end; writeln(f,' '); end; end; procedure zamena(var v,b:real); var d:real; begin d:=v; v:=b; b:=d; end; begin clrscr; assign(f,'d:\progi\exo!\y.txt'); write('ўўҐ¤ЁвҐ Є®«ЁзҐбвў® бва®Є'); readln(m); write('ўўҐ¤ЁвҐ Є®«ЁзҐбвў® бв®«Ўж®ў'); readln(n); for i:=1 to m do begin for j:=1 to n do begin writeln('a[',i,',',j,']='); readln(a[i,j]); end; end; writeln; vivodek(a); rewrite(f); writeln(f,'massiv'); vivodfail(a); close(f); repeat t:=true; for j:=1 to n do begin for i:=1 to m-1 do begin if a[i+1,j]<a[i,j] then begin zamena(a[i+1,j],a[i,j]); t:=false; end; end; end; until t; writeln; vivodek(A); append(f); writeln(f,'masiv posle obrabotki'); vivodfail(a); close(f); readln; for i:=1 to m do begin k:=0; for j:=1 to n div 2 do begin zamena(a[i,j],a[i,n-k]); k:=k+1; end; end; vivodek(a); append(f); writeln(f,'mas posle zameni'); vivodfail(a); close(F); readln; writeln('vvedite nygnoe chislo'); readln(x); writeln(' napishite chislo massiva, kotoroe nado zamenit na eto chislo'); readln(y); for i:=1 to m do for j:=1 to n do if a[i,j]=y then a[i,j]:=x; writeln('massiv posle zameni'); vivodek(a); append(f); writeln(f,'massiv posle zameni'); vivodfail(a); close(f); readln; end. |
11.01.2007, 18:33 | #2 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
for j:=1 to n do
begin for i:=1 to m-1 do begin if a[i+1,j]<a[i,j] then begin zamena(a[i+1,j],a[i,j]); t:=false; end; end; end; -> Код:
Берегите друг друга!
|
12.01.2007, 00:29 | #3 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,501
|
klikniss(тормоз), как новичку предупреждение за кросс постинг, если повторится будет бан.
|