Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Массивы и Паскаль  (Прочитано 7004 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
RylesMan
Гость
« : 16-11-2008 01:30 » new

Помогите пожалуста с заданием на Паскале
1. Определить среднее арифметическое элементов массива, который принадлежит промежутку(а,b)
2. Задан массив A(N,m) .заменить в нем положительные элементы, которые стоят в чётных строках на 1,а отрицательные элементы в нечётных столбиках на -1
« Последнее редактирование: 15-12-2008 17:41 от Алексей1153++ » Записан
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #1 : 16-11-2008 15:49 » 

RylesMan, принимай код:
Код:
program Arrays;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const
  n = 4;
  m = 4;// можно менять на свои, в цикле это предусмотрено
        // но осторожно с инициализацией!!!

type
  arrayA = array [1..n, 1..m] of integer;//я использую integer,
                                         //но если надо, то измени
                                         //на свой тип

var
  a: arrayA;
  middle: real;//ср. арифм.
  elCount: integer;//количество елементов массива в промежутке (a; b)
  i, j: integer;//счетчики
  left, right: integer;//промежуток

begin
  //Инициализация:
  for i := 1 to n do
    for j := 1 to m do
    begin
      a[i, j] := (i - 1) * n + j + 10;
      if a[i, j] mod 2 = 1 then
        a[i, j] := -a[i, j];
    end;
  //Виводим матрицу на екран
  WriteLn('Our array:');

  for i := 1 to n do
  begin
    for j := 1 to m do
      Write(a[i, j], ' ');
    WriteLn('');
  end;
  //Задание №1: среднее арифметическое:
  Write('Input A: ');
  ReadLn(left);

  Write('Input B: ');
  ReadLn(right);

  middle := 0;
  elCount := 0;

  for i := 1 to n do
    for j := 1 to m do
      if (a[i, j] > left)and(a[i, j] < right) then
      begin
        Inc(elCount, 1);
        middle := middle + a[i, j];
      end;

  if elCount > 0 then
    middle := middle / elCount;

  WriteLn('Middle = ', middle:10:3, '.');

  //Задание №2: замена елементов:
  for i := 1 to n do
    for j := 1 to m do
      if (i mod 2 = 1)and(a[i, j] < 0) then
        a[i, j] := -1
        else if (i mod 2 = 0)and(a[i, j] >= 0) then//здесь 0 учитывается
                                                   //как положительное
          a[i, j] := 1;
  //Виводим матрицу на екран
  WriteLn('Changed array:');

  for i := 1 to n do
  begin
    for j := 1 to m do
      Write(a[i, j], ' ');
    WriteLn('');
  end;
  //Конец программы
  WriteLn('Press any key to exit...');
  ReadLn;
end.

« Последнее редактирование: 16-11-2008 15:58 от Алексей1153++ » Записан
RylesMan
Гость
« Ответ #2 : 16-11-2008 16:57 » 

Спасиба за код Inkognito )
« Последнее редактирование: 15-12-2008 17:43 от Алексей1153++ » Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 16-11-2008 19:56 » 

Inkognito, никто не запрещает (и не может запретить) тебе помогать. Просто рано или поздно тебе это надоест, т.к. помощи просят не только те, кто в ней действительно нуждаются, а чаще - лентяи и халявщики. Оттуда и общая политика. Она позволяет сэкономить силы.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines