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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2015, 14:29   #1
Мортум
Пользователь
 
Регистрация: 08.06.2015
Сообщений: 11
По умолчанию Подскажите где в коде ошибка?Паскаль

1.Найти максимальное и минимальное нечетные числа и их среднее арифметическое.
Код:
const n = 19;
var i, imax, imin, sr: integer;
    a: array [1..n] of integer;
begin
  randomize;
  imax := 0;
  imin := 0;
  writeln('Source array:');
  for i := 1 to n do
    begin
     a[i] := -99 + random(199);
     write(a[i]:4);
     if odd(a[i])
       then if (imin = 0) or (a[i] < a[imin])
         then imin := i
         else if (imax = 0) or (a[i] > a[imax])
           then imax := i
    end;
  writeln;
  if (imax = 0) and (imin = 0)
    then write('Odd elements not found')
    else if imax = 0
      then write('Only one odd element is found')
      else begin
        writeln('Min odd element: A[', imin, '] = ', a[imin]);
        writeln('Max odd element: A[', imax, '] = ', a[imax]);
        sr := (a[imin] + a[imax]) div 2;
        writeln('Average of the maximum and minimum odd elements = ', sr)
      end;
  write('Press <Enter> to exit');
  readln
end.
2. Вычислить вектор a={a1,a2,...,an} , если ak=min ( xk,yk) , векторы x и y заданы.
Код:
Program Summa;
  Uses Crt;
  Type Mas = Array [1..20] of Real;
  Var A    : Mas;
      i, N : Integer;
      S    : Real;
BEGIN
  ClrScr;    {очистка экрана }
  Write('Введите N = ');
  ReadLn(N); {ввод значения N}
  For i := 1 to N dо {цикл по элементам массива}
    begin
      Write('A [ ', i , ' ] = ');
      ReadLn(A[i])   {ввод элементов массива}
    end;
  S := 0; {присваивание начального значения}
  For i := 1 to N do S := S+A[i]; {суммирование}
  WriteLn;
  WriteLn('Сумма равна ', S : 5 : 1);
  ReadLn
END.

Правильно оформляй код. Кнопка # вверху

Последний раз редактировалось Аватар; 17.06.2015 в 14:33.
Мортум вне форума Ответить с цитированием
Старый 17.06.2015, 15:18   #2
Мортум
Пользователь
 
Регистрация: 08.06.2015
Сообщений: 11
По умолчанию

есть еще вариант решения первой задачи
например
Код:
type
    massiv = array [1..1000] of integer; // создаём свой тип данных для массива
  
var
    mass : massiv; // объявляем переменные 
    i, n, summa, count : integer; // объявляем переменные 
    sred : real; // объявляем переменные 
     
begin
    write('Введите длину массива : ');readln(n); // просим пользователя ввести длину массива
     
    for i:=1 to n do // делаем цикл для заполнения массива
        begin
            write('Введите ', i , ' элемент : ');readln(mass[i]); // заполняем массива вручную
            if (i mod 2 <> 0) then // проверяем на нечетность номер элемента, если нечетный, то
                begin
                    count := count + 1; // увеличиваем кол-во нечетных номеров
                    summa := summa + mass[i]; // и увеличиваем сумму
                end;
        end;
    sred := summa / count; // находим среднее арифметическое
     
    writeln('Среднее арифметическое с нечетными номерами : ' , sred); // выводим результат
    readln; // чтобы программа не закрывалась
end.
Мортум вне форума Ответить с цитированием
Старый 17.06.2015, 15:23   #3
Мортум
Пользователь
 
Регистрация: 08.06.2015
Сообщений: 11
По умолчанию

Товарищи помогите ради бога разобраться в ошибках, а то мне начинает казаться, что там все уже не правильно((((
Мортум вне форума Ответить с цитированием
Старый 17.06.2015, 15:35   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
1.Найти максимальное и минимальное нечетные числа и их среднее арифметическое.
Код:
const n = 19;
var i, imax, imin, sr: integer;
    a: array [1..n] of integer;
begin
  randomize;
  imax := 0;
  imin := 0;
  writeln('Source array:');
  for i := 1 to n do
    begin
     a[i] := -99 + random(199);
     write(a[i]:4);
     if odd(a[i])  then begin 
       if (imin = 0) or (a[i] < a[imin])    then imin := i;
       if (imax = 0) or (a[i] > a[imax])   then imax := i
    end;

  writeln;
 
 if (imax=0) then write('Not found a both')
 else write('average=',((a[imax]+a[imin])/2):5:2);
 
 
  write('Press <Enter> to exit');
  readln
end.
Цитата:
2. Вычислить вектор a={a1,a2,...,an} , если ak=min ( xk,yk) , векторы x и y заданы.
Код:
Код:

Program Summa;
  Uses Crt;
  Type Mas = Array [1..20] of Real;
  Var A,x,y    : Mas;
      k : Integer;
BEGIN
  ClrScr;    {очистка экрана }
  Write('Введите N = ');
  ReadLn(N); {ввод значения N}
  For k := 1 to N dо {цикл по элементам массива}
    begin
      Write('x [ ',k , ' ] = ');     ReadLn(x[k])   {ввод элементов массива}
      Write('y [ ',k , ' ] = ');     ReadLn(y[k])   {ввод элементов массива}
      if x[k]<y[k] then a[k]:=x[k] else a[k]:=y[k];
    end;
  WriteLn;
  For i := 1 to N do write(A[i]:5:2); {суммирование}

  ReadLn
END.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.06.2015, 15:50   #5
Мортум
Пользователь
 
Регистрация: 08.06.2015
Сообщений: 11
По умолчанию

Спасибо!!!!
Мортум вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
спасите, добрые люди, пожаааааалуйста:3 где-то в коде закралась ошибка, потому что выводит левые числа, а где, понятия не имею:с typayababa Помощь студентам 9 19.11.2017 11:48
где ошибка в коде? tfbro Помощь студентам 5 31.12.2013 18:18
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? ArchiCurtis Помощь студентам 2 07.04.2012 14:16
Два одномерных массива A и B. Сформировать два новых массива. Паскаль. Где ошибка в коде? Tomny Помощь студентам 1 27.03.2011 16:47
Подскажите где у меня ошибка(Паскаль) NTFS Помощь студентам 3 02.04.2008 19:28