Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 15 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Паскаль. Одномерный массив
СообщениеДобавлено: 28 окт 2015, 07:45 
Не в сети
Beautiful Mind
Зарегистрирован:
26 май 2014, 08:50
Сообщений: 1122
Cпасибо сказано: 672
Спасибо получено:
10 раз в 10 сообщениях
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Изображение
Что то пытался писать, но это не то.
Var x:array[1..30] of real;
c: array[1..30] of real;
i,n:integer;
Begin
write('Введите чиcло '); readln(n);// как правильно назвать это число, чтобы было понятно что мы вводим?
for i:=3 to n do
x[i]:=ln(sqr(x[i-1])-sqr(ln(abs(c[i-2]))));
for i:=3 to n do
write(x[i]:4);
end.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Паскаль. Одномерный массив
СообщениеДобавлено: 28 окт 2015, 13:49 
Не в сети
Light & Truth
Зарегистрирован:
10 фев 2013, 21:28
Сообщений: 2695
Cпасибо сказано: 236
Спасибо получено:
841 раз в 775 сообщениях
Очков репутации: 207

Добавить очки репутацииУменьшить очки репутации
sfanter
Чтобы научится свободно программировать, сначала полезно научиться описывать алгоритм с помощью блок-схемы.
Вам не нужны два цикла. Перед началом работы цикла должны быть определены все необходимые значения переменных и констант, которые будут операндами внутри цикла.
[math]n[/math] по смыслу Вашей задачи - это число значений массива [math]x[/math], которые Вам надо вычислить. Для Вас [math]n \leqslant 30[/math].
Формула, которую Вам надо запрограммировать, является рекуррентной, чтобы она заработала в цикле ей необходимо задать два начальных значения для [math]x[/math], т.е. [math]x[1] \,\colon = A[/math], [math]x[2] \,\colon = B[/math], где [math]A[/math], [math]B[/math] - конкретные числа.
Кроме этого, формула использует значения массива [math]c[/math], который надо задать до начала цикла вычислений массива [math]x[/math].
Поэтому алгоритм может быть такой:
1) вводим значение для [math]n[/math]
2) организуем цикл по [math]i[/math] от 1 до [math]n[/math] в котором вводим значения для массива [math]c[/math]
3) вводим два значения для [math]x[/math], т.е. для [math]x[1][/math][math]x[2][/math]
4) организуем цикл по [math]i[/math] от 3 до [math]n[/math] в котором вычисляются значения [math]x[i][/math]. Вычисленное [math]x[i][/math] можно сразу выводить на печать, чтобы не делать лишнего цикла. Но можно и отдельным циклом.

Вернуться к началу
 Профиль  
Cпасибо сказано 
За это сообщение пользователю Anatole "Спасибо" сказали:
sfanter
 Заголовок сообщения: Re: Паскаль. Одномерный массив
СообщениеДобавлено: 28 окт 2015, 21:25 
Не в сети
Beautiful Mind
Зарегистрирован:
26 май 2014, 08:50
Сообщений: 1122
Cпасибо сказано: 672
Спасибо получено:
10 раз в 10 сообщениях
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Anatole писал(а):
sfanter
Чтобы научится свободно программировать, сначала полезно научиться описывать алгоритм с помощью блок-схемы.
Вам не нужны два цикла. Перед началом работы цикла должны быть определены все необходимые значения переменных и констант, которые будут операндами внутри цикла.
[math]n[/math] по смыслу Вашей задачи - это число значений массива [math]x[/math], которые Вам надо вычислить. Для Вас [math]n \leqslant 30[/math].
Формула, которую Вам надо запрограммировать, является рекуррентной, чтобы она заработала в цикле ей необходимо задать два начальных значения для [math]x[/math], т.е. [math]x[1] \,\colon = A[/math], [math]x[2] \,\colon = B[/math], где [math]A[/math], [math]B[/math] - конкретные числа.
Кроме этого, формула использует значения массива [math]c[/math], который надо задать до начала цикла вычислений массива [math]x[/math].
Поэтому алгоритм может быть такой:
1) вводим значение для [math]n[/math]
2) организуем цикл по [math]i[/math] от 1 до [math]n[/math] в котором вводим значения для массива [math]c[/math]
3) вводим два значения для [math]x[/math], т.е. для [math]x[1][/math][math]x[2][/math]
4) организуем цикл по [math]i[/math] от 3 до [math]n[/math] в котором вычисляются значения [math]x[i][/math]. Вычисленное [math]x[i][/math] можно сразу выводить на печать, чтобы не делать лишнего цикла. Но можно и отдельным циклом.

Попытался написать:
Var x:array[1..30] of real;
c: array[1..30] of real;
i,n:integer;
Begin
write('Введите чиcло '); readln(n);

for i:=1 to n do writeln(c[i]);
x[1]:=1; x[2]:=2;
for i:= 3 to n do
x[i]:=ln(sqr(x[i-1])-sqr(ln(abs(c[i-2]))));
write(x[i]:4);
end.

Работает, но совсем неправильно.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Паскаль. Одномерный массив
СообщениеДобавлено: 28 окт 2015, 21:55 
Не в сети
Light & Truth
Зарегистрирован:
10 фев 2013, 21:28
Сообщений: 2695
Cпасибо сказано: 236
Спасибо получено:
841 раз в 775 сообщениях
Очков репутации: 207

Добавить очки репутацииУменьшить очки репутации
sfanter писал(а):
for i:=1 to n do writeln(c[i]);

наверное не writeln, а readln?!


sfanter писал(а):
x[i]:=ln(sqr(x[i-1])-sqr(ln(abs(c[i-2]))));
write(x[i]:4);

Эти два оператора надо взять в begin...end;

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Паскаль. Одномерный массив
СообщениеДобавлено: 29 окт 2015, 04:45 
Не в сети
Beautiful Mind
Зарегистрирован:
26 май 2014, 08:50
Сообщений: 1122
Cпасибо сказано: 672
Спасибо получено:
10 раз в 10 сообщениях
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Anatole писал(а):
sfanter писал(а):
for i:=1 to n do writeln(c[i]);

наверное не writeln, а readln?!


sfanter писал(а):
x[i]:=ln(sqr(x[i-1])-sqr(ln(abs(c[i-2]))));
write(x[i]:4);

Эти два оператора надо взять в begin...end;

Вот так исправил:
Var x:array[1..30] of real;
c: array[1..30] of real;
i,n:integer;
Begin
write('Введите чиcло элементов массива '); readln(n);
write('Через пробел введите числа массива');
for i:=1 to n do read(c[i]);
x[1]:=1; x[2]:=2;
for i:= 3 to n do
begin
x[i]:=ln(sqr(x[i-1])-sqr(ln(abs(c[i-2]))));
write(x[i]:4);
end;
end.

Результаты программы:
Введите число элементов массива 5
Через пробел введите числа массива 4 4 4 3 65
0.73 NaN NaN

Что то не то. Нужно ещё исправлять.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Паскаль. Одномерный массив
СообщениеДобавлено: 29 окт 2015, 07:02 
Не в сети
Beautiful Mind
Зарегистрирован:
26 май 2014, 08:50
Сообщений: 1122
Cпасибо сказано: 672
Спасибо получено:
10 раз в 10 сообщениях
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Anatole писал(а):
sfanter писал(а):
for i:=1 to n do writeln(c[i]);

наверное не writeln, а readln?!


sfanter писал(а):
x[i]:=ln(sqr(x[i-1])-sqr(ln(abs(c[i-2]))));
write(x[i]:4);

Эти два оператора надо взять в begin...end;

Вот я ещё исправил: скобку одну не дописал первый раз
Var x:array[1..30] of real;
c: array[1..30] of real;
i,n:integer;
Begin
write('Введите чиcло элементов массива '); readln(n);
write('Через пробел введите числа массива ');
for i:=1 to n do read(c[i]);
x[1]:=1; x[2]:=2;
for i:= 3 to n do
begin
x[i]:=ln(sqr(x[i-1]))-sqr(ln(abs(c[i-2])));
write(x[i]:6:2);
end;
end.

Там у меня получились конкретные значения уже. Правильно я понял, что переменным x[1] и x[2] можно присвоить любые значения? Но лучше наверное единички присваивать?

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Паскаль. Одномерный массив
СообщениеДобавлено: 29 окт 2015, 15:11 
Не в сети
Light & Truth
Зарегистрирован:
10 фев 2013, 21:28
Сообщений: 2695
Cпасибо сказано: 236
Спасибо получено:
841 раз в 775 сообщениях
Очков репутации: 207

Добавить очки репутацииУменьшить очки репутации
sfanter писал(а):
Правильно я понял, что переменным x[1] и x[2] можно присвоить любые значения? Но лучше наверное единички присваивать?

Любые допустимые для функции [math]\ln{x^{2} }[/math]

Вернуться к началу
 Профиль  
Cпасибо сказано 
За это сообщение пользователю Anatole "Спасибо" сказали:
sfanter
 Заголовок сообщения: Re: Паскаль. Одномерный массив
СообщениеДобавлено: 30 окт 2015, 01:26 
Не в сети
Beautiful Mind
Зарегистрирован:
26 май 2014, 08:50
Сообщений: 1122
Cпасибо сказано: 672
Спасибо получено:
10 раз в 10 сообщениях
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Anatole писал(а):
sfanter писал(а):
Правильно я понял, что переменным x[1] и x[2] можно присвоить любые значения? Но лучше наверное единички присваивать?

Любые допустимые для функции [math]\ln{x^{2} }[/math]

То есть программу можно считать верной?

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Паскаль. Одномерный массив
СообщениеДобавлено: 30 окт 2015, 01:45 
Не в сети
Light & Truth
Зарегистрирован:
10 фев 2013, 21:28
Сообщений: 2695
Cпасибо сказано: 236
Спасибо получено:
841 раз в 775 сообщениях
Очков репутации: 207

Добавить очки репутацииУменьшить очки репутации
sfanter писал(а):
То есть программу можно считать верной?

Программа, особенно сложная нуждается в тестировании.
Ну, а в данном случае все прозрачно. :)

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Паскаль. Одномерный массив
СообщениеДобавлено: 30 окт 2015, 01:52 
Не в сети
Beautiful Mind
Зарегистрирован:
26 май 2014, 08:50
Сообщений: 1122
Cпасибо сказано: 672
Спасибо получено:
10 раз в 10 сообщениях
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Anatole писал(а):
sfanter писал(а):
То есть программу можно считать верной?

Программа, особенно сложная нуждается в тестировании.
Ну, а в данном случае все прозрачно. :)


Ну значения она мне выдаёт.

Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему    На страницу 1, 2  След.  Страница 1 из 2 [ Сообщений: 15 ]

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Создать массив

в форуме Информатика и Компьютерные науки

Katrina7

5

421

11 ноя 2017, 01:35

Массив TurboBasic

в форуме Информатика и Компьютерные науки

Maxpower55

1

240

21 дек 2017, 19:13

Дан массив. Сформировать новый

в форуме Информатика и Компьютерные науки

mapsaaag

1

346

14 фев 2018, 09:09

Массив простых чисел

в форуме Информатика и Компьютерные науки

pacha

21

3429

30 май 2019, 19:36

Массив ( turbo basic)

в форуме Информатика и Компьютерные науки

Maxpower55

1

272

15 дек 2017, 13:39

Паскаль. Перевод из 10-й в 16-ю СС

в форуме Информатика и Компьютерные науки

sfanter

1

1198

23 июл 2014, 21:52

Паскаль, код, помощь

в форуме Информатика и Компьютерные науки

Seira

3

215

20 ноя 2020, 16:05

Вывести на консоль массив в три способа

в форуме Информатика и Компьютерные науки

max_timokhin

0

194

16 апр 2017, 21:11

Паскаль. Условный оператор

в форуме Информатика и Компьютерные науки

sfanter

1

496

14 июл 2014, 12:47

Паскаль. Кодировка символов

в форуме Информатика и Компьютерные науки

sfanter

4

792

23 июл 2014, 14:31


Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2023 MathHelpPlanet.com. All rights reserved