Двумерные массивы на Паскале

Тема в разделе "Pascal and Delphi", создана пользователем mcbeat, 11 янв 2011.

  1. mcbeat

    mcbeat Гость

    1. Дана квадратная матрица A порядка M. Начиная с элемента A1,1, вывести ее элементы следующим образом («уголками»): все элементы первого столбца; элементы последней строки, кроме первого (уже выведенного) элемента; оставшиеся элементы второго столбца; оставшиеся элементы предпоследней строки и т. Д.; последним выводится элемент A1,M.

    2. Дана матрица размера M х N. В каждом ее столбце найти количество элементов, больших среднего арифметического всех элементов этого столбца.


    3. Дана матрица размера M х N. Зеркально отразить ее элементы относительно вертикальной оси симметрии матрицы (при этом поменяются местами столбцы с номерами 1 и N, 2 и N – 1 и т. д.).
     
  2. mss

    mss Гость

    icq 169527143
     
  3. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    Возможно перепутал столбики и рядки(всё время путаю), но в принципе работает правильно.
    №1
    Код (Delphi):
    const m=5;
    var a:array[1..m,1..m] of integer;
    i,j,j1:integer;
    begin
    for i:=1 to m do
    for j:=1 to m do
    a[i,j]:=random(100);

    for i:=1 to m do
    begin
    if i mod 2=1 then
    for j:=i to m do
    write('[',i,',',j,'] ');

    if i mod 2=0 then
    for j1:=i to m do
    write('[',j1,',',i,'] ');

    writeln;
    end;
    readln;
    end.
    №2
    Код (Delphi):
    const n=10;
    m=5;
    var a:array[1..n,1..m] of integer;
    i,j,k:integer;
    s:real;
    begin
    for i:=1 to n do
    for j:=1 to m do
    a[i,j]:=random(100);

    for i:=1 to n do
    begin
    s:=0;
    for j:=1 to m do
    s:=s+a[i,j];

    s:=s/m;
    k:=0;
    for j:=1 to m do
    if a[i,j]>s then k:=k+1;

    writeln('kol-vo bolhe srednego v ',i,' stolbce = ',k);
    end;
    readln;
    end.
    №3
    Код (Delphi):
    const n=10;
    m=6;
    var a:array[1..n,1..m] of integer;
    i,j,t:integer;
    begin
    for i:=1 to n do
    for j:=1 to m do
    a[i,j]:=random(100);

    writeln;
    writeln('before');
    writeln;
    for i:=1 to n do
    begin
    write('|');
    for j:=1 to m do
    write(' ',a[i,j]:3,' |');
    writeln;
    end;
    writeln('after');
    writeln;

    for i:=1 to m div 2 do
    begin

    for j:=1 to n do
    begin
    t:=a[j,i];
    a[j,i]:=a[j,m-i+1];
    a[j,m-i+1]:=t;
    end;

    end;

    for i:=1 to n do
    begin
    write('|');
    for j:=1 to m do
    write(' ',a[i,j]:3,' |');
    writeln;
    end;

    readln;
    end.
    ЗЫ В Личку с просьбами: решите срочно, решите очень надо... больше НЕ ПИШИТЕ иначе буду тупо игнорировать.
     
  4. mcbeat

    mcbeat Гость

    Огромное спасибо, очень помог))))))) ;)
     
Загрузка...
Похожие Темы - Двумерные массивы на
  1. SchwarzeWolfin
    Ответов:
    3
    Просмотров:
    2.501
  2. Rpp
    Ответов:
    1
    Просмотров:
    809
  3. Малгано
    Ответов:
    0
    Просмотров:
    1.289
  4. 203
    Ответов:
    12
    Просмотров:
    2.449
  5. Искушенный
    Ответов:
    0
    Просмотров:
    430

Поделиться этой страницей