Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.12.2010, 21:07
Virus2011 Virus2011 вне форума
Прохожий
 
Регистрация: 19.12.2010
Сообщения: 3
Репутация: 10
По умолчанию ПОмогите с паскалем

Я в программирование полный ноль помогите написать программу:
Написать программу, сортирующую методом выбора главную диагональ двумерного массива целых чисел. Массив считать из текстового файла, содержащего в первой строке кол-во строк и кол-во столбцов, а далее в каждой строке целые числа, соответствующие элементам строки массива, например,
3 3
1 2 3
2 3 4
3 4 5 .
Ответить с цитированием
Этот пользователь сказал Спасибо Virus2011 за это полезное сообщение:
vadim12345 (22.12.2011)
  #2  
Старый 21.12.2010, 14:48
stil stil вне форума
Новичок
 
Регистрация: 24.11.2010
Сообщения: 91
Репутация: 41
По умолчанию попробуй

Код:
program p1;
uses crt;
type mas=array [0..0,0..0] of integer;
var i,j,n,m:integer;
     a:mas;
     f:text;
begin
clrscr;
assing(f,'1.txt');
reset(f);
read(f,n,m);
close(f);
for i:=0 to n-1 do begin
    for j:=0 to m-1 do begin
        a[i,j]:=i+j+1;
        write(a[i,j]:3);
    end;
end;
readln;
end.
В файле размер массива через пробел
Ответить с цитированием
Этот пользователь сказал Спасибо stil за это полезное сообщение:
vadim12345 (22.12.2011)
  #3  
Старый 21.12.2010, 18:53
Virus2011 Virus2011 вне форума
Прохожий
 
Регистрация: 19.12.2010
Сообщения: 3
Репутация: 10
По умолчанию глянь что у меня получилось осталось только сортировку диагонали сделать

Код:
program massiv1;
uses crt;
var n,k,i,j, stol, buf: integer;
    p: real;
    a: array[1..10,1..10] of integer; //
    f,g: text;
begin
clrscr;
   assign(g,'c:\1.txt');                //
   reset(g);                              //
writeln('Исходный массив');
     j:=1;
while not eoln(g) do                        //
   begin
     while j<=1 do                            //  сделан для того чтобы считать 1 символ кол-во строк
     begin
       read(g,n);
       j:=j+1;
     end;
       read(g,stol);                         // т к счетчик перепрыгнул на след елемент можно занести и его кол-во столбцов
   end;
   i:=0;                                     // i- строки
   while not eof(g) do                          // eof - использ для проверки конца файла, а eoln- для пров конца строки
   begin
     if (i<=stol)  then i:=i+1;
     j:=1;                                             // j- столбцы
     while j<=n do
     begin
       read(g,a[i,j]);                                 // заполняем массив
       j:=j+1;
     end;
   end;
   close(g);
writeln('Массив заполнен значениями.');               //вывод массива на экран
writeln;
for i:=1 to stol do begin
for j:=1 to n do
begin
write(a[i,j],'  ');
end; writeln; end;
                                                      // сортировка
for i:=1 to n-1 do begin
    for j:=1 to n-1 do begin
        a[i,j]:=i+j+1;
    end;
end;
 
writeln('Отсортированный массив!!!');               //вывод массива на экран
writeln;
for i:=1 to stol do begin
for j:=1 to n do
begin
write(a[i,j],'  ');
end; writeln; end;
end.
Ответить с цитированием
Этот пользователь сказал Спасибо Virus2011 за это полезное сообщение:
vadim12345 (22.12.2011)
  #4  
Старый 24.12.2010, 12:22
Virus2011 Virus2011 вне форума
Прохожий
 
Регистрация: 19.12.2010
Сообщения: 3
Репутация: 10
По умолчанию короче решил ниже код!

program massiv1;
uses crt;
var n,k,i,m,j,x, stol, buf: integer;
p: real;
a: array[1..10,1..10] of integer; //
f,g: text;
begin
clrscr;
assign(g,'c:\1.txt'); //
reset(g); //
writeln('Исходный массив');
j:=1;
while not eoln(g) do //
begin
while j<=1 do // сделан для того чтобы считать 1 символ кол-во строк
begin
read(g,n);
j:=j+1;
end;
read(g,stol); // т к счетчик перепрыгнул на след елемент можно занести и его кол-во столбцов
end;
i:=0; // i- строки
while not eof(g) do // eof - использ для проверки конца файла, а eoln- для пров конца строки
begin
if (i<=stol) then i:=i+1;
j:=1; // j- столбцы
while j<=n do
begin
read(g,a[i,j]); // заполняем массив
j:=j+1;
end;
end;
close(g);
writeln('Массив заполнен значениями.'); //вывод массива на экран
writeln;
for i:=1 to stol do begin
for j:=1 to n do
begin
write(a[i,j],' ');
end; writeln; end;
// сортировка
for k:=n downto 2 do {k - kol-vo elementov dla poiska max }
begin
m:=1; { m - mesto max }
for i:=2 to k do if A[i,i]>A[m,m] then m:=i;
{menaem mestami elementi s nomerom m i nomerom k}
x:=A[m,m]; A[m,m]:=A[k,k]; A[k,k]:=x;
end;
writeln('Отсортированный массив!!!'); //вывод массива на экран
writeln;
for i:=1 to stol do begin
for j:=1 to n do
begin
write(a[i,j],' ');
end; writeln; end;
end.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:12.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025