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

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

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

> Минуточку внимания!, Помогите исправить простенькую програмку.
Незнайка 013
сообщение 17.03.2008 13:13
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 7)
Странник
сообщение 17.03.2008 13:31
Сообщение #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 
 К началу страницы 
+ Ответить 
volvo
сообщение 17.03.2008 13:36
Сообщение #3


Гость






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

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

Добавлено через 1 мин.
Цитата
чтобы получить последовательность чисел тебе нужно было описать массив
Чтобы получить последовательность массив не нужен. Он нужен, чтобы сохранить эту последовательность. Чувствуешь разницу?
 К началу страницы 
+ Ответить 
Незнайка 013
сообщение 17.03.2008 13:54
Сообщение #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 - 17.03.2008 16:18
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Странник
сообщение 17.03.2008 14:25
Сообщение #5


Новичок
*

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

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


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

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


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

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


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

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


Гуру
*****

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

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


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

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

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


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

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


Michael_Rybak
*****

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

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


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



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

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

 



- Текстовая версия 21.06.2025 20:34
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"