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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2010, 17:23   #11
Ольга123456
Пользователь
 
Регистрация: 19.05.2010
Сообщений: 22
По умолчанию

Здравствуйте!Помогите пожалуйста!


Дан одномерный массив А размера n(n<=30).получить новый массив В,каждый элемент которого вычисляется по формуле bi=cosai+cos^2i+cos^3i+..+cosa^ni

(формула словами:б итое равно косинус а итого+косинус квадрат и+косинус куб и.......и так далее)
среда-Турбо Паскаль
Ольга123456 на форуме Добавить отзыв для Ольга123456 Пожаловаться на это сообщение Редактировать/удалить сообщение
Ольга123456 вне форума Ответить с цитированием
Старый 24.05.2010, 18:00   #12
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

Цитата:
Сообщение от Ольга123456 Посмотреть сообщение
Здравствуйте!Помогите пожалуйста!


Дан одномерный массив А размера n(n<=30).получить новый массив В,каждый элемент которого вычисляется по формуле bi=cosai+cos^2i+cos^3i+..+cosa^ni

(формула словами:б итое равно косинус а итого+косинус квадрат и+косинус куб и.......и так далее)
среда-Турбо Паскаль
Ольга123456 на форуме Добавить отзыв для Ольга123456 Пожаловаться на это сообщение Редактировать/удалить сообщение


var
Sum: real;
i, k, n: byte;
a: array [1..30] of real;
b: array [1..30] of real;

function Pow(P: real; const s: byte): real;
var
i: byte;
Sp: real;
begin
Sp:=1;
for i:=1 to n do
Sp:=Sp*P;
Pow:=Sp;
end;

begin
readln(n);
for i:=1 to n do
readln(a[i]);
for i:=1 to n do
begin
Sum:=cos(a[i]);
for k:=2 to n do
Sum:=Sum + Pow(cos(i),k);
b[i]:=Sum;
end;
for i:=1 to n do
writeln(b[i]:1:3);
readln;
end.

Вроде так.
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 25.05.2010, 09:48   #13
Ольга123456
Пользователь
 
Регистрация: 19.05.2010
Сообщений: 22
По умолчанию

Don Karleone,спасибо большое))))))))


Я сейчас в универ уезжаю.Приду-проверю работу программы и напишу Вам.


зайдите потом сюда)
Ольга123456 вне форума Ответить с цитированием
Старый 25.05.2010, 10:41   #14
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Don Karleone!
Сразу же возник вопрос: а не утомительно ли будет пользователю вводить вручную 30 значений массива А??? А если пользователь введет значение N больше 30? Кирдык программе!!! "Out of range" обеспечено!!!
Затем возник вопрос: а зачем в функцию передавать константное значение S:byte, если оно в функции ну никак не используется???
Затем возник вопрос: а зачем в цикле (при вычислении элемента массива B[i]) каждый раз (29 раз) вызывать функцию Pow???
Кроме того, в функцию каждый раз передается значение Cos(i) и будет оно вычисляться каждый раз при вызове функции (т.е. опять же 29 раз). А его достаточно вычислить ВСЕГО ОДИН РАЗ... И, кроме того, вычислять нужно не Cos(i), а Cos(A[i])!!! (c TC это обсуждалось при личном общении). Совершенно неоптимальное программирование с точки зрения организации вычислительных процессов...
Уж лучше написать функцию вычисления элемента массива B[i] и делать ВСЕГО ОДИН вызов ЭТОЙ функции...
Да и тип данных лучше использовать Extended вместо real, т.к. он оптимален для плавающей точки при работе с сопроцессором...

См. пост №3 http://www.programmersforum.ru/showthread.php?t=99978
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 25.05.2010 в 14:01.
Grag вне форума Ответить с цитированием
Старый 26.05.2010, 00:33   #15
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

Цитата:
Сообщение от Grag Посмотреть сообщение
Don Karleone!
Сразу же возник вопрос: а не утомительно ли будет пользователю вводить вручную 30 значений массива А??? А если пользователь введет значение N больше 30? Кирдык программе!!! "Out of range" обеспечено!!!
Затем возник вопрос: а зачем в функцию передавать константное значение S:byte, если оно в функции ну никак не используется???
Затем возник вопрос: а зачем в цикле (при вычислении элемента массива B[i]) каждый раз (29 раз) вызывать функцию Pow???
Кроме того, в функцию каждый раз передается значение Cos(i) и будет оно вычисляться каждый раз при вызове функции (т.е. опять же 29 раз). А его достаточно вычислить ВСЕГО ОДИН РАЗ... И, кроме того, вычислять нужно не Cos(i), а Cos(A[i])!!! (c TC это обсуждалось при личном общении). Совершенно неоптимальное программирование с точки зрения организации вычислительных процессов...
Уж лучше написать функцию вычисления элемента массива B[i] и делать ВСЕГО ОДИН вызов ЭТОЙ функции...
Да и тип данных лучше использовать Extended вместо real, т.к. он оптимален для плавающей точки при работе с сопроцессором...

См. пост №3 http://www.programmersforum.ru/showthread.php?t=99978

В функции в цикле for конечным значением должна быть константа s. Я просто ошибся и написал n.
По условию программы начиная со второго элемента вычисляется не cos(a[i]) a cos^2i, cos^3i т. е. cos в квадрате i, cos в кубе i и т. д.
Ввод количества элементов остается на совести человека, который будет вводить.

И если ты такой умный и оптимальный, ты бы взял и написал свой оптимальный код, так как это сообщение появляется уже в различных темах много, много раз и тема была бы закрыта уже давным давно!!!
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 26.05.2010, 12:44   #16
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Ввод количества элементов остается на совести человека, который будет вводить.
Я просто ошибся и написал n.
Качество создаваемого программного обеспечения полностью на совести программиста...

Цитата:
ты бы взял и написал свой оптимальный код
См. пост №3 http://www.programmersforum.ru/showthread.php?t=99978 и далее...
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 26.05.2010 в 12:48.
Grag вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
по массивам lilia2121 Помощь студентам 3 15.04.2010 13:05
Задание по массивам rump Помощь студентам 5 29.05.2009 21:57
Программы по строкам,файлам,массивам от Блондиночки Блондиночка Помощь студентам 17 05.05.2008 01:08