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

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

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

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

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

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

Код:
program three;
const
N=10;
var
s,x1,x2,w,h,x:real;
A:array [1..N] of real;
i:integer;
begin
x1:=-5;
x2:=10;
x:=x1;
h:=1;
s:=0;
while x<=x2 do
   begin
     if (0<=x)and(x<=4) then w:=0.4*10*10*10*sin(x)
     else
     w:=0.5*exp(ln(10)*1.5)*x-10*10*exp(sin(x));
     writeln('W=',w,' x=',x);
     s:=s+w;
     x:=x+h;
   end;
   s:=s/16;
   writeln('среднее арифметическое=',s);
   for i:=1 to N do
   begin
   A[i]:=W;
  writeln(A[i]);
 end;
end.
Пытался сам, но он выводит 10 раз последнее вычисление. Я новичек в паскале, объясните пожалуйста.

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

Цитата:
Сообщение от ser18 Посмотреть сообщение
... Пытался сам, но он выводит 10 раз последнее вычисление. Я новичек в паскале, объясните пожалуйста.
А что же она должна выводить, если у вас:
Код:
 for i:=1 to N do
   begin
    A[i]:=W;    //  ********
    writeln(A[i]);
   end;
Вот она и выводит одно и то же значение W.

Вообще непонятно, что вам надо посчитать.
Кстати, вроде в PascalABC.NET есть функция Power для степени. Чтобы не городить логарифмы-экспоненты.
type_Oleg вне форума Ответить с цитированием
Старый 05.03.2016, 14:27   #3
ProBeginner
Форумчанин
 
Регистрация: 22.02.2016
Сообщений: 145
По умолчанию Программирование

Если надо сделать массив, то цикл FOR д.б. на верхнем уровне.
Код:
for i:=1 to 10 do
Begin
   Тут Вычисляете i-ый элемент
   A[i]:=Присваиваете то, что вычислили
End;
Напишите такую болванку, вместо вычислений пусть будет i*i.
Проверьте программу, чтоб она работала.
Дальше уже будет проще писать программу, т.к. останется проблема с логикой вычислений.
Если будут вопросы, покажите собственно задание. Соображать, что было задано по неправильной программе весьма тяжко %-)
Возьму в кредит мильён по 100% годовых на сто лет.
ProBeginner вне форума Ответить с цитированием
Старый 06.03.2016, 12:03   #4
ser18
Пользователь
 
Регистрация: 03.03.2016
Сообщений: 17
По умолчанию

Постановка задачи:
Вычислить значения ф-и W=0,4*10^3*sin(^2)x, если 0<=x<=4, W=0,5*10^(1,5)*x-10(^2)*e^sinx, в остальных случаях для x, изменяющегося от x1 до x2 с шагом h. определить среднее арифметическое результатов, полученных по первой и второй формулам. Сформировать массив из первых 10 результатов. x1=-5, x2=10, h=1.

Там все работает кроме массива, я не знаю как правильно написать, чтобы он записывал результаты вычислений.
ser18 вне форума Ответить с цитированием
Старый 06.03.2016, 12:04   #5
ser18
Пользователь
 
Регистрация: 03.03.2016
Сообщений: 17
По умолчанию

type_Oleg
Нет, такая функция есть в турбо при подключении плагина.
ser18 вне форума Ответить с цитированием
Старый 06.03.2016, 22:21   #6
dimon_snake
Форумчанин
 
Регистрация: 05.11.2015
Сообщений: 167
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
А что же она должна выводить, если у вас:
Код:
 for i:=1 to N do
   begin
    A[i]:=W;    //  ********
    writeln(A[i]);
   end;
Вот она и выводит одно и то же значение W.
Правильно вам сказали.
Вы каждый раз присваиваете элементу массиву последнее из заданных w значений. Раз последнее было 100, то и массив получится из элементов 100.
Нужно еще в первом цикле while присваивать массиву w, а в конце просто вывести его.
dimon_snake вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив строк, поиск (PascalABC.NET) Родион19 Помощь студентам 0 13.12.2015 15:31
Составить алгоритм и программу для вычислений n значений функции y=f(x), равномерно расположенных в диапазоне Seferus Visual C++ 0 11.05.2015 17:14
)Составить программу вычисления произведения первых N натуральных Rushanbets Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 24.11.2014 23:21
Помогите составить блок схему для готовой программы PascalABC.NET Sysypo4ka Помощь студентам 2 19.05.2014 07:18
PascalABC.net одномерный массив Vobydyn Помощь студентам 1 21.11.2011 19:11