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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2009, 19:44   #1
Rulyas
 
Регистрация: 26.01.2009
Сообщений: 8
По умолчанию Массивы [pascal]

Помогите с решением задач:

1) Найти сумму всех элементов массива целых чисел, удовлетворяющих условию: остаток от деления на 2 равен 1.

2) В автопарке при обработке путевых листов получены два массива: массив S(n) пробега автомашины при n выездах и массив B(n)
соответствующего расхода бензина. Написать программу, которая вычисляет суммарный пробег и суммарный расход бензина за все выезды;

3) Имеется двухмерный массив целых чисел. Найти номер строки, для которой среднеарифметическое значение ее элементов максимально.

4) Определить максимальный элемент побочной диагонали массива.

5) В каждом столбце двухмерного массива поменять местами последний элемент и любой из минимальных.

6) Сформировать квадратную матрицу порядка n x n по заданному образцу (n — четное) (смотри рисунок):

Заранее спасибо!
Изображения
Тип файла: jpg 1.JPG (5.5 Кб, 109 просмотров)

Последний раз редактировалось Rulyas; 08.09.2009 в 20:00. Причина: Ошибка
Rulyas вне форума Ответить с цитированием
Старый 08.09.2009, 19:46   #2
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

Цитата:
1) Найти сумму всех элементов массива целых чисел, удовлетворяющих условию: остаток от деления на 2 равен 3.
- это что за бред? Остаток от деления на 2 может быть лишь 0 либо 1.
mMAg вне форума Ответить с цитированием
Старый 08.09.2009, 19:59   #3
Rulyas
 
Регистрация: 26.01.2009
Сообщений: 8
По умолчанию

Цитата:
Сообщение от mMAg Посмотреть сообщение
- это что за бред? Остаток от деления на 2 может быть лишь 0 либо 1.
Извините, ошибочка вышла
Rulyas вне форума Ответить с цитированием
Старый 08.09.2009, 20:09   #4
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

А массивы можно динамические использовать, или только статические?
Да, и кто и когда значения ячеек массива нам предлагает? Объявлять константный массив, или просить пользователя ввести все данные с консоли в диалоговом режиме?
Или может из файла считывать данные?

Последний раз редактировалось mMAg; 08.09.2009 в 20:14.
mMAg вне форума Ответить с цитированием
Старый 08.09.2009, 20:28   #5
Rulyas
 
Регистрация: 26.01.2009
Сообщений: 8
По умолчанию

Массив полностью рандомный. С клавиатуры ничего не вводим.
Rulyas вне форума Ответить с цитированием
Старый 08.09.2009, 20:38   #6
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

Цитата:
Сообщение от Rulyas Посмотреть сообщение
Помогите с решением задач:

1) Найти сумму всех элементов массива целых чисел, удовлетворяющих условию: остаток от деления на 2 равен 1.
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  mas : array of integer;
  masCount, i, sum : integer;
begin
  Writeln( 'masCount - ' );
  Readln( masCount );
  Setlength( mas, masCount );
  Randomize;
  for i := 0 to masCount - 1 do
    mas[i] := Random(10000);
  sum := 0;
  for i := 0 to masCount - 1 do
    if ( ( mas[i] mod 2 ) = 1 ) then
      inc( sum, mas[i] );
  //все... в переменной sum содержится ответ на поставленную задачу
end.
Цитата:
Сообщение от Rulyas Посмотреть сообщение
3) Имеется двухмерный массив целых чисел. Найти номер строки, для которой среднеарифметическое значение ее элементов максимально.
Код:
program mMAgProgforRulyasProblem3;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var
  mas : array of array of integer;
  masRowCount, masColCount : integer;
  i, j, sum : integer;
  sAverage, nMaxAvrg : Double;
begin
  Writeln( ' Rows Count - ' );
  Readln( masRowCount );
  Writeln( ' Columns Count - ' );
  Readln( masColCount );
  for i := 0 to masColCount - 1 do
    for j := 0 to masRowCount - 1 do
      mas[i,j] := Random(10000);
  sum := 0;
  sAverage := 0;
  for i := 0 to masColCount - 1 do
  begin
    for j := 0 to masRowCount - 1 do
    begin
      inc( sum, mas[i,j] );
    end;
    if i = 0 then
    begin
      sAverage := sum / masRowCount;
      nmaxAvrg := 1;
    end
    else
      if ( sAverage < ( sum / masRowCount ) )
      then
      begin
        sAverage := ( sum / masRowCount );
        nmaxAvrg := i + 1;
      end;
    sum := 0;
  end;
end.
Как-то так, я не проверял. В nmaxAvrg содержится ответ на поставленную задачу

Последний раз редактировалось SuperVisor; 10.09.2009 в 10:38. Причина: КРОССПОСТ не приветствуется..
mMAg вне форума Ответить с цитированием
Старый 09.09.2009, 00:00   #7
StudeHt
Пользователь
 
Регистрация: 05.04.2009
Сообщений: 78
По умолчанию

Цитата:
4) Определить максимальный элемент побочной диагонали массива.
Код:
uses crt;
const MaxN=20;
var Matr:array[1..MaxN,1..MaxN] of integer;
    i,j,n,Max:integer;
begin
  clrscr;
  repeat
    writeln('Введите размерность квадратной матрицы ');
    readln(n);
  until n<=MaxN;
  for i:=1 to n do
    begin
      for j:=1 to n do
        begin
          writeln('Введите элемент № ',i,' ',j);
          readln(Matr[i,j]);
        end;
    end;
  for i:=1 to n do
    begin
      for j:=1 to n do
        write(Matr[i,j]:4);
        writeln;
    end;
  Max:=Matr[1,1];
  for i:=1 to n do
    if Matr[i,n-i+1]>Max then
      Max:=Matr[i,n-i+1];
  writeln('Максимальный элемент побочной диагонали равен ',Max);
  readln;
end.
StudeHt вне форума Ответить с цитированием
Старый 09.09.2009, 06:46   #8
Consol
Пользователь
 
Регистрация: 19.08.2009
Сообщений: 89
По умолчанию

Цитата:
6) Сформировать квадратную матрицу порядка n x n по заданному образцу (n — четное) (смотри рисунок):
Код:
writeln('n');
readln(n);

for i:=1 to n do
 begin
 for j:=1 to n-i+1 do
  a[i,j]:=i;
  j:=j+1;
 while j<=n do
 begin
  a[i,j]:=0;
  j:=j+1;
 end; 
 end;
Цитата:
5) В каждом столбце двухмерного массива поменять местами последний элемент и любой из минимальных.
Код:
for i:=1 to n do
 begin
  min:=a[1,i];
  minj:=1;
  for j:=1  to m do
   if a[j,i]<min then
                     begin
                      min:=a[j,i];
                      minj:=j;
                     end;
   temp:=a[m,i];
   a[m,i]:=a[minj,i];
   a[minj,i]:=temp;
 end;

Последний раз редактировалось Stilet; 09.09.2009 в 08:09.
Consol вне форума Ответить с цитированием
Старый 09.09.2009, 17:54   #9
Rulyas
 
Регистрация: 26.01.2009
Сообщений: 8
По умолчанию

Проблема уже в 1 задаче: у меня нету файла SysUtils и мы его кст не учили... С 3 тоже самое.

А 5 и 6 вообще не хотят работать

Последний раз редактировалось Rulyas; 09.09.2009 в 18:03.
Rulyas вне форума Ответить с цитированием
Старый 09.09.2009, 18:08   #10
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 823
По умолчанию

Rulyas,Вам все задачи решили,теперь надо создать проекты,оттрассировать за Вас....думаю скоро надо будет сходить на лабы и сдать.Если возникли проблемы,тогда покажите листинг проекта и сообщения,что Вам написал компилятор.
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
pascal, массивы nastya8984999 Помощь студентам 1 31.03.2009 20:12
массивы Pascal -ushёl- Помощь студентам 3 23.03.2009 06:45
Pascal. Массивы. Help. adelaida Помощь студентам 11 24.11.2008 17:02
Pascal/Массивы ромка) Паскаль, Turbo Pascal, PascalABC.NET 6 14.06.2008 18:29
Pascal. Массивы Danilyuk Помощь студентам 1 22.01.2008 19:56