Автор Тема: Помогите с информатикой  (Прочитано 4189 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Slink

  • Гость
Помогите с информатикой
« : 26 Июнь 2006, 20:56:56 »
Нужно решить задачку на экзамен, на завтра, помогите, пожалуйста, кто знает Фортран. Задачка естественно по Фортрану:

Составить программу вычисления и печати среднего значения элементов одномерного массива Х (100). Количество элементов N и значения Х вводятся.

Оффлайн .flint

  • Пользователь
  • Сообщений: 843
  • Пол: Мужской
    • Просмотр профиля
Помогите с информатикой
« Ответ #1 : 26 Июнь 2006, 19:39:58 »
Фортран не знаю (но, если мне память не изменяет, прямой предок Pascal), поэтому напишу на паскале. Синтаксис должен быть схож, поэтому если что -- переделай.

program average;

var
   n: word;    { количество элементов }
   x: array[0..1000] of integer;  { массив элементов }
   av: real;   { среднее значение }
   i: word;  { переменная главного цикла }

begin

repeat
   write("Input the elements count: ");
   readln(n);
   if (n>1000) then writeln("You stupid gorilla! You have to input natural numbers less than 1000 only!");
until (n>1000);  { так. вот на этом месте позабыл, когда у repeat..until выход? когда правда или когда ложь? Пусть будет когда ложь. }

for i:=1 to n do   { вводим всякую бяку }
begin
   write("Input ", i, " element of array: ");
   readln(x[i]);
   av := av + x[i];
end;

av := av / n;  { вычисляем среднее значение }

writeln("Average is ", av);

end.


Вот, собственно, и все. Может, ошибся в синтаксисе пары операторов, так как Паскаль уже давненько не видел. Если что, ориентируйся по комментариям.

Оффлайн Zephyr

  • Пользователь
  • Сообщений: 544
  • Пол: Мужской
  • coder
    • Просмотр профиля
Помогите с информатикой
« Ответ #2 : 28 Июнь 2006, 22:33:44 »
.flint,
Хлоп, хлоп!!! Молодец!!! Я тобою горжусь!!!
if (n>1000) then
until (n>1000);  
Тока скобки лишние

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7421
    • Просмотр профиля
Помогите с информатикой
« Ответ #3 : 28 Июнь 2006, 22:50:38 »
Цитата

program average;

var
   n: word;    { количество элементов }
   x: array[1..1000] of integer;  { массив элементов }
   av: real;   { среднее значение }
   i: word;  { переменная главного цикла }

begin

repeat
   write("Input the elements count (must be less than 1000): ");
   readln(n);
   if (n>1000) then writeln("You wanna enter whole ",n," numbers? Can you do it? You don't? So, don't be stupid and enter new one but less than 1000");
until (n<1000);  {у repeat..until выход когда правда а не ложь.}

for i:=1 to n do   { вводим всякую бяку }
begin
   write("Input ", i, " element of array: ");
   readln(x);
   av := av + x;
end;

av := av / n;  { вычисляем среднее значение }

writeln("Average is ", av);

end.

Произвел работу над АшиПками. =)
« Последнее редактирование: 28 Июнь 2006, 22:54:25 от HardWareMan »

Оффлайн Zephyr

  • Пользователь
  • Сообщений: 544
  • Пол: Мужской
  • coder
    • Просмотр профиля
Помогите с информатикой
« Ответ #4 : 28 Июнь 2006, 22:57:08 »
Зачем скобки???

Оффлайн .flint

  • Пользователь
  • Сообщений: 843
  • Пол: Мужской
    • Просмотр профиля
Помогите с информатикой
« Ответ #5 : 28 Июнь 2006, 23:34:30 »
Цитата: Zephyr
Тока скобки лишние

Спасибо :) Скобки идут от C уже на подсознательном уровне. Только сейчас заметил :)

Оффлайн aUruM

  • Emu-Land Team
  • Сообщений: 1793
  • Пол: Мужской
    • Просмотр профиля
Помогите с информатикой
« Ответ #6 : 28 Июнь 2006, 23:54:00 »
На самом деле, в данном случае абсолютно неважно, надо ставить скобки или нет, т.к. всего одно условие. Вот в случае с if (i<1000) or (if=1333) постановка скобок обязательна.