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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2009, 22:33   #1
Roll1n
Пользователь
 
Регистрация: 04.01.2009
Сообщений: 30
По умолчанию Паскаль абс

1)Вычислить массив R[1:n]
в соот. с формулой
r[i]=2cos(3ax-ih)
i=1,n
x,h,a-заданы
2)из вычисленного массива R удалить все отрицательные элементы,расположенные до минимального
3)в полученном массиве R[1:k],где k-число эл-ов,оставшееся после удаление,подсчитать:
среднее арифметическое эл-ов,расположенных между первым и последним положительными элементами

Вот задача,с 1,2 частью я справился
Нужно доделать 3

Код:
{Лабораторная работа 2}
Program lab2;
Uses Crt;
Const lmax=1000;{максимальная длина массивов}
Type mass=array[1..lmax] of real;
Var R:mass;
i,k,n,nmin:integer;
a,x,h,min:real;
begin
clrscr;
writeln('Лабораторная работа 2');
{задание 1}
writeln('Задание 1');
{ввод исходных данных для задания  1};
writeln('Введите длину массива до 1000');
read (n);
writeln('Введите "a" , "x" , "h" ');
read(a,x,h);
for i:=1 to n do begin
R[i]:= 1.5*cos(3*a*x+i*h);
write('   R[', i ,']=',R[i]:5:3);
end;
for i:=1 to n do
if r[i]<min then
begin
min:=r[i];
nmin:=i;
end;
for i:=1 to n do
if r[i]<0 then r[i]:=r[i+1];
for i:=1 to n do
write(r[i]:4:2, ' ');
end.
Это код к 1,2 заданию

Код:
{Лабораторная работа 2}
Program lab2;
Uses Crt;
Const lmax=1000;{максимальная длина массивов}
Type mass=array[1..lmax] of real;
Var R:mass;
i,k,n,nmin:integer;
a,x,h,min:real;
begin
clrscr;
writeln('Лабораторная работа 2');
{задание 1}
writeln('Задание 1');
{ввод исходных данных для задания  1};
writeln('Введите длину массива до 1000');
read (n);
writeln('Введите "a" , "x" , "h" ');
read(a,x,h);
for i:=1 to n do begin
R[i]:= 1.5*cos(3*a*x+i*h);
write('   R[', i ,']=',R[i]:5:3);
end;
for i:=1 to n do
if r[i]<min then
begin
min:=r[i];
nmin:=i;
end;
for i:=1 to n do
if r[i]<0 then r[i]:=r[i+1];
for i:=1 to n do
write(r[i]:4:2, ' ');
end;
k:=n-k;
for i:=2 to k-1 do
sum:=sum+r[i];
end;
n:=0;
repeat
  n:=n+1;            {номер 1го положительного массива}
until a[n]>0;
m:=10; {кол-во элементов массива}
repeat
  m:=m-1;
until a[m]>0;          {номер последнего эл-та массива}
for j:=n to m do
 begin
  sum:=sum+a[j]
 end;
write('n=', n,' m=',m,' srednee arifm=',sum/(m-n+1));
readln;
end;
end.
код к 1,2,3

Но выдает ошибку,помогите доработать
Код:
k:=n-k;
for i:=2 to k-1 do
sum:=sum+r[i];
end;
n:=0;
repeat
  n:=n+1;            {номер 1го положительного массива}
until a[n]>0;
m:=10; {кол-во элементов массива}
repeat
  m:=m-1;
until a[m]>0;          {номер последнего эл-та массива}
for j:=n to m do
 begin
  sum:=sum+a[j]
 end;
write('n=', n,' m=',m,' srednee arifm=',sum/(m-n+1));
readln;
end;
end.
Код к 3 заданию

Последний раз редактировалось Roll1n; 29.09.2009 в 22:54.
Roll1n вне форума Ответить с цитированием
Старый 30.09.2009, 14:25   #2
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию

Программа уже решена
Всё гениальное - просто!
.Phoenix вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль(абс) Roll1n Помощь студентам 16 30.09.2009 00:24
Множество, очень замудренно, паскаль АБС Архат Паскаль, Turbo Pascal, PascalABC.NET 5 14.06.2009 15:30
Рекурентное соотношение на Паскаль АБС Архат Паскаль, Turbo Pascal, PascalABC.NET 0 14.06.2009 13:10