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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2016, 11:54   #1
ser18
Пользователь
 
Регистрация: 03.03.2016
Сообщений: 17
Лампочка PascalABC.NET Проблема с массивом и вычислениями.

Код:
program four;
const N = 10;

var
  i, x: integer;
  a: array [1..N] of integer;
  b: array [1..N] of real;
  y: real;

begin
  for i := 1 to N do
  begin
    a[i] := x;
    a[1] := 2;
    a[2] := 3;
    a[3] := -5;
    a[4] := 6;
    a[5] := -11;
    a[6] := 2;
    a[7] := 4;
    a[8] := 15;
    a[9] := -3;
    a[10] := 8;
    begin
      if (x > 2) or (x < 0) then y := 400 * sin(x)
      else
        y := 0.2 * exp(ln(10) * (-2)) * exp(x) / (4 + cos(x));
      writeln('y=', y);
    end;
  end;
  
end.
Программа считает Y по формулам, условия там есть. Нужно сделать так, чтобы x принимал значения, которые я забил в массив. Вот с ним проблема, не знаю как правильно сделать. Ещё, подскажите, как сделать так, чтобы программа посчитала кол-во обращений к первой формуле.

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 03.03.2016 в 13:27.
ser18 вне форума Ответить с цитированием
Старый 03.03.2016, 12:22   #2
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

если я правильно понял то я ничего не понял
Код:
program four;// имя программы
const // объявляем константы 
N=10; // константа размерности массива 
var   // объявляем переменные 
i,x:integer;  //i- индекс массива x- используем при вычислении
a:array [1..N] of integer; //массив с данными 
b:array [1..N] of real; // массив просто так 
y:real; //переменная для вычислений 
begin // начало тела программы 
for i:=1 to N do // цикл от первого до последнего элемента массива 
begin // тело цикла 
a[i]:=x; //присваиваем в 1,2,3..10 элементы массива "пустой" присваивание ////происходит последовательно (с каждой итерацией следующий элемент) 
a[1]:=2; // затираем что присвоили другими данными 
a[2]:=3;
a[3]:=-5;
a[4]:=6;
a[5]:=-11;
a[6]:=2;
a[7]:=4;
a[8]:=15;
a[9]:=-3;
a[10]:=8;
begin //?
// сравниваем пустой x 
If (x>2)or(x<0) then 
 y:=400*sin(x)  //посчет с пустым x
  else
    y:=0.2*exp(ln(10)*(-2))*exp(x)/(4+cos(x)); //посчет с пустым x
writeln('y=',y); // выводим y 
end;//закрывает бегин с вопросиком 
end; // конец цикла 
end. // конец программы
могу предположить что вы хотели так?
Код:
program four;
const
N=10;
var
i,x:integer;
a:array [1..N] of integer;
.....................
y:real;
begin
a[1]:=2;
a[2]:=3;
a[3]:=-5;
a[4]:=6;
a[5]:=-11;
a[6]:=2;
a[7]:=4;
a[8]:=15;
a[9]:=-3;
a[10]:=8;
for i:=1 to N do
   begin
     x:=a[i];
     If (x>2)or(x<0) then 
       y:=400*sin(x) else
        y:=0.2*exp(ln(10)*(-2))*exp(x)/(4+cos(x));
          writeln('y=',y);
end;

end.
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 03.03.2016, 12:44   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Лучше вот так:
Код:
program four;

const
 N=10;
 a:array [1..N] of integer=(2,3,-5,6,-11,2,4,15,-3,8);

var i,x:integer;
  y,t:real;
begin
 t:=0.2*exp(ln(10)*(-2));  // чтобы не вычислять 10 раз одно и то же
 for i:=1 to N do
   begin
     x:=a[i];
     if (x>2)or(x<0) 
      then y:=400*sin(x) 
      else y:=t*exp(x)/(4+cos(x));
     WriteLn('y=',y);
   end;
end.
Кстати, можно вообще без переменной x . Просто вместо нее - a[i]
type_Oleg вне форума Ответить с цитированием
Старый 05.03.2016, 11:31   #4
ser18
Пользователь
 
Регистрация: 03.03.2016
Сообщений: 17
По умолчанию

Спасибо, не понял про формулу степени только. Подскажите, как сделать так, чтобы программа считала обращения к 1-й формуле?

Еще, можно ли сделат так, чтобы Y в ответе был пронумерован?

Последний раз редактировалось ser18; 05.03.2016 в 11:34.
ser18 вне форума Ответить с цитированием
Старый 05.03.2016, 12:13   #5
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Цитата:
Сообщение от ser18 Посмотреть сообщение
...
Еще, можно ли сделат так, чтобы Y в ответе был пронумерован?
Изменить вывод WriteLn:
Код:
WriteLn('y[',i,']= ',y);
type_Oleg вне форума Ответить с цитированием
Старый 05.03.2016, 15:00   #6
ProBeginner
Форумчанин
 
Регистрация: 22.02.2016
Сообщений: 145
По умолчанию

Цитата:
Сообщение от ser18 Посмотреть сообщение
Код:
    a[i] := x;
    a[1] := 2;
-явно что-то неадекватное. Лучше покажите (или напишите точно) задание как дано преподавателем.
Возьму в кредит мильён по 100% годовых на сто лет.
ProBeginner вне форума Ответить с цитированием
Старый 06.03.2016, 12:09   #7
ser18
Пользователь
 
Регистрация: 03.03.2016
Сообщений: 17
По умолчанию

Вот постановка задачи:
Вычислить зн. функции Y=0,4*10^3*sinx при 0<x<2, Y=(0,2*(10^-2)*e^x)/(4+cosx) - в остальных случаях для элементов массива (x1,x2,..xn). Из отрицательных значений Y сформировать массив, а для положительных(нули исключить) определить среднее геометрическое. Определить кол-во обращений к 1-й формуле.

Кстати то, что предложили выше(спасибо) - верно, все работает. Осталось только посчитать обращения к 1-й формуле.

Последний раз редактировалось ser18; 06.03.2016 в 12:15.
ser18 вне форума Ответить с цитированием
Старый 06.03.2016, 13:51   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Осталось только посчитать обращения к 1-й формуле.
напиши функцию с этой формулой внутри и передавай в неё, кроме аргумента, по ссылке переменную-счётчик вызовов. не используй глобальную переменную.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с вычислениями в коде. Bane Общие вопросы Delphi 2 05.06.2014 19:56
PascalABC.Net now2 Помощь студентам 2 27.03.2014 21:03
Проблема с вычислениями ~Sл@\/яH~ JavaScript, Ajax 3 12.08.2012 16:14
PascalABC.NET v1ktor Паскаль, Turbo Pascal, PascalABC.NET 0 21.06.2011 13:58
PascalABC.net gogomon93 Помощь студентам 5 17.04.2011 18:48