Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2010, 14:04   #1
Slezinka
 
Регистрация: 09.06.2010
Сообщений: 3
По умолчанию Массивы (одномерный и двумерный)

Очень нужна помощь...зашла в тупик с этим паскалем. Не могу сделать две задачки на массивы:

1. Даны действительные числа a1, a2, … ,an. Поменять местами наибольший и наименьший элементы.

2. Вычислить сумму и число положительных элементов матрицы А [N, N], находящихся над главной диагональю.

Не оставьте без внимания, пожалуйста
Slezinka вне форума Ответить с цитированием
Старый 09.06.2010, 14:26   #2
Anty_F[R]eez
Пользователь
 
Регистрация: 04.06.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Slezinka Посмотреть сообщение
находящихся над главной диагональю.
главная диагональ это типа A[0][0]-A[max][max]???
Учу С++ и многого не знаю... буду очень благодарен если вы мне поможите понять...тупо зделать не прошу и сам в этом не заинтересован!!!
Anty_F[R]eez вне форума Ответить с цитированием
Старый 09.06.2010, 14:46   #3
Snejnaya
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 219
По умолчанию

Цитата:
Даны действительные числа a1, a2, … ,an. Поменять местами наибольший и наименьший элементы
в чем именно состоит проблема - ты не можешь найти максимальный и минимальный элементы или не можешь поменять их местами?

Цитата:
Вычислить сумму и число положительных элементов матрицы А [N, N], находящихся над главной диагональю.
Код:
var i,j,n, chislo_el:integer;
     a: array [1..10, 1..10] of real;
     sum:real;
begin
//тут запросили у пользователя n<=10 и сформировали матрицу
sum:=0;
chislo_el:=0;
for i:=1 to n do
for j:=i to n do
if (a[i,j]>0) then
begin
chislo_el:=chislo_el+1;
sum:=sum+a[i,j];
end;
writeln(sum);
writeln(chislo_el);
end;
Snejnaya вне форума Ответить с цитированием
Старый 09.06.2010, 14:53   #4
Slezinka
 
Регистрация: 09.06.2010
Сообщений: 3
По умолчанию

Anty_F[R]eez, не знаю...меня это пугает вообще

Snejnaya, в первой я не могу поменять местами и сделать так, чтобы на экране выводился исходный и полученный массив. А за вторую задачку спасибо, попробую сейчас....
Slezinka вне форума Ответить с цитированием
Старый 09.06.2010, 15:03   #5
Snejnaya
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 219
По умолчанию

тебе просто нужно ввести дополнительную переменную. Вот ты нашла максимальный и минимальный элементы и сохранила их индексы в переменные i_max, i_min. В разделе vаr объявила дополнительную переменную - назовем ее х.

Код:
//выводим исходный массив
for i:=1 to n do write(a[i]);

//меняем местами
x:=a[i_max];
a[i_max]:=a[i_min];
a[i_min]:=x;

//еще раз выводим
for i:=1 to n do write(a[i]);
Snejnaya вне форума Ответить с цитированием
Старый 09.06.2010, 23:15   #6
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

-I-
Код:
Uses
  CRT;
var
  a:array [1..20] of integer;
  i,min,max,imin,imax,n,t:integer;
begin
Clrscr;
randomize;
write('Введите количество элементов массива: ');
readln(n);
writeln('Исходный массив:=');
for i:=1 to n do
  begin
     a[i]:=random(10)-2;
     write(a[i]:3,' ');
  end;

min:=a[1];
imin:=1;
max:=a[1];
imax:=1;
for i:=1 to n do
   begin
     If a[i]>Max Then
       Begin
          Max:=a[i];
          imax:=i;
       End;
     If a[i]<Min Then
       Begin
          Min:=a[i];
          iMin:=i;
       End;
   end;

writeln;
  writeln ('MIN[',imin,']:=',min,'; MAX[',imax,']:=',max);
    t:=a[imax];
    a[imax]:=a[imin];
    a[imin]:=t;
    writeln;
    writeln('Результирующий массив:=');
    for i:=1 to n do
      begin
         write(a[i]:3,' ');
      end;
readkey;
end.
-II-
Код:
Uses 
   CRT;
var a: array[1..100,1..100] of integer;
i,j,n,sum,kol:integer;
begin
randomize;
clrscr;
write('Введите кол-во строк и столбцов: ');
readln(n);
for i:=1 to n do
  begin
   for j:=1 to n do
     begin
       a[i,j]:=random(10)-3;
       write(a[i,j]:3);
     end;
     writeln;
  end;
writeln;
sum:=0;
kol:=0;
for i:=1 to n do
for j:=1 to n do
if i<j then
begin
if a[i,j]>0 then
begin
inc(kol);
sum:=sum+a[i,j];
end;
end;
writeln;
writeln('Сумма положительных элементов выше главной диагонали:=',sum,'; Количество:=',kol);
readkey;
end.
にんじゃ

Последний раз редактировалось ROMA2PVT; 09.06.2010 в 23:28.
ROMA2PVT вне форума Ответить с цитированием
Старый 10.06.2010, 14:42   #7
Slezinka
 
Регистрация: 09.06.2010
Сообщений: 3
По умолчанию

Ребят, огромное вам СПАСИБО! Выручили очень)))
Slezinka вне форума Ответить с цитированием
Старый 26.05.2011, 11:07   #8
Наталько
 
Регистрация: 21.05.2011
Сообщений: 4
По умолчанию

и мне пригодилось, спасибо)))
Наталько вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный и двумерный массив Almost456 Паскаль, Turbo Pascal, PascalABC.NET 6 25.12.2012 18:30
ДВУМЕРНЫЙ И ОДНОМЕРНЫЙ МАССИВЫ ALYSA Помощь студентам 6 19.04.2010 21:52
Одномерный и двумерный массивы с функцией. Перец Помощь студентам 1 01.04.2009 15:25
задачи на одномерный и двумерный массивы Toxass Паскаль, Turbo Pascal, PascalABC.NET 12 13.11.2008 18:41