IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Минуточку внимания!, Помогите исправить простенькую програмку.
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Задачка следующая: Дано натуральное число n и действительное число a. Получить последовательность В1,....,Вn, где при i=1,2,...,n значение Вi равно а в степени i.
program one;
var
n,i :integer; x,a: reai;
begin
writeln ('введите числа n и a');
write ('n='); readln (n); write ('a='); readln (a);
for i:=1 to n do
begin
a:=exp (i*ln(a)); x:=a;
end;
write (x[i]:6:2,' ');
end.
Что я неправильно сделал? помогите пожалста...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Ты в пинципе все сделал, чтобы получить последовательность чисел тебе нужно было описать массив из вещественных чисел. Смотри код.

program one;
uses
crt;
var
n,i:integer;
a,x:real;
b:array [1..100] of real; //чтобы получить последовательность чисел нужно использовать массивы

begin
clrscr;
writeln ('Ввести числа n и a');
write ('n='); readln (n); write ('a='); readln (a);
for i:=1 to n do
begin
x:=exp(i*ln(a));

b[i]:=x; // записываешь результат вычисления в массив

write (b[i]:6:2,' '); //выводишь массив в цикле
end;
readln;
end.


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата
x:=exp(i*ln(a)); 
Это здесь не нужно совершенно. Есть предыдущее значение, из него вычисляй текущее. Лишние вычисления - зло...

О том, что резервировать место для 100 элементов массива, даже если тебе понадобится всего 5 из них, это некорректно - я уже говорил, но как видно, это всем по фигу...

Добавлено через 1 мин.
Цитата
чтобы получить последовательность чисел тебе нужно было описать массив
Чтобы получить последовательность массив не нужен. Он нужен, чтобы сохранить эту последовательность. Чувствуешь разницу?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Премного благодарен!!!
Еще можно?
задачка: Даны натуральные числа n,A1,A2,...,An. Определить количество членов Ак последовательности А1,...,Аn, кратных 3 и некратных 5. Опять моя програмка не работает.
program pyat;
var
x:array [1..200] of integer;
i,k,n: integer;
begin
write ('введите n<=200'); readln (n);
for i:=1 to n do
begin
write ('x[' ,i, ']= ');
readln (x[i]);
end;
k:=0;
for i:=1 to n do
if i mod 3=0 and mod 5<>0 then
begin
k:=k+1;
end;
writeln (k);
end.
Чего опять я нето написал?

Сообщение отредактировано: Незнайка 013 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Цитата(volvo @ 17.03.2008 16:06) *

Это здесь не нужно совершенно. Есть предыдущее значение, из него вычисляй текущее.


это всмысле вот так

 b[i]:=exp(i*ln(a)); 


или как то по другому?

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(Странник @ 17.03.2008 14:25) *

это всмысле вот так

 b[i]:=exp(i*ln(a)); 


или как то по другому?

Это в смысле:
b := b*a;
Причем, b - не массив, а простая переменная, что избавляет сразу от двух неприятностей:
1. Нерационального использования памяти.
2. Возможности порчи памяти при выходе за границы массива, если запрошенное n окажется больше 100.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Цитата(andriano @ 17.03.2008 17:24) *

Это в смысле:
b := b*a;
Причем, b - не массив, а простая переменная, что избавляет сразу от двух неприятностей:
1. Нерационального использования памяти.
2. Возможности порчи памяти при выходе за границы массива, если запрошенное n окажется больше 100.


Имелось ввиду что то наподобие вот этого?

b:=1;
for i:=1 to n do
b:=b*a;
end;


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Michael_Rybak
*****

Группа: Пользователи
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


М
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
6. Одна тема - один вопрос (задача)



 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 0:08
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name