Математический форум Math Help Planet
Обсуждение и решение задач по математике, физике, химии, экономике Теоретический раздел |
Часовой пояс: UTC + 3 часа [ Летнее время ] |
новый онлайн-сервис число, сумма и дата прописью |
|
Часовой пояс: UTC + 3 часа [ Летнее время ] |
Страница 1 из 2 |
[ Сообщений: 15 ] | На страницу 1, 2 След. |
|
Автор | Сообщение | |
---|---|---|
sfanter |
|
|
Что то пытался писать, но это не то. 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. |
||
Вернуться к началу | ||
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] можно сразу выводить на печать, чтобы не делать лишнего цикла. Но можно и отдельным циклом. |
||
Вернуться к началу | ||
За это сообщение пользователю Anatole "Спасибо" сказали: sfanter |
||
sfanter |
|
|
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. Работает, но совсем неправильно. |
||
Вернуться к началу | ||
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; |
||
Вернуться к началу | ||
sfanter |
|
|
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 Что то не то. Нужно ещё исправлять. |
||
Вернуться к началу | ||
sfanter |
|
|
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] можно присвоить любые значения? Но лучше наверное единички присваивать? |
||
Вернуться к началу | ||
Anatole |
|
|
sfanter писал(а): Правильно я понял, что переменным x[1] и x[2] можно присвоить любые значения? Но лучше наверное единички присваивать? Любые допустимые для функции [math]\ln{x^{2} }[/math] |
||
Вернуться к началу | ||
За это сообщение пользователю Anatole "Спасибо" сказали: sfanter |
||
sfanter |
|
|
Anatole писал(а): sfanter писал(а): Правильно я понял, что переменным x[1] и x[2] можно присвоить любые значения? Но лучше наверное единички присваивать? Любые допустимые для функции [math]\ln{x^{2} }[/math] То есть программу можно считать верной? |
||
Вернуться к началу | ||
Anatole |
|
|
sfanter писал(а): То есть программу можно считать верной? Программа, особенно сложная нуждается в тестировании. Ну, а в данном случае все прозрачно. |
||
Вернуться к началу | ||
sfanter |
|
|
Anatole писал(а): sfanter писал(а): То есть программу можно считать верной? Программа, особенно сложная нуждается в тестировании. Ну, а в данном случае все прозрачно. Ну значения она мне выдаёт. |
||
Вернуться к началу | ||
На страницу 1, 2 След. | [ Сообщений: 15 ] |
Похожие темы | Автор | Ответы | Просмотры | Последнее сообщение |
---|---|---|---|---|
Создать массив
в форуме Информатика и Компьютерные науки |
5 |
421 |
11 ноя 2017, 01:35 |
|
Массив TurboBasic
в форуме Информатика и Компьютерные науки |
1 |
240 |
21 дек 2017, 19:13 |
|
Дан массив. Сформировать новый
в форуме Информатика и Компьютерные науки |
1 |
346 |
14 фев 2018, 09:09 |
|
Массив простых чисел
в форуме Информатика и Компьютерные науки |
21 |
3429 |
30 май 2019, 19:36 |
|
Массив ( turbo basic)
в форуме Информатика и Компьютерные науки |
1 |
272 |
15 дек 2017, 13:39 |
|
Паскаль. Перевод из 10-й в 16-ю СС
в форуме Информатика и Компьютерные науки |
1 |
1198 |
23 июл 2014, 21:52 |
|
Паскаль, код, помощь
в форуме Информатика и Компьютерные науки |
3 |
215 |
20 ноя 2020, 16:05 |
|
Вывести на консоль массив в три способа
в форуме Информатика и Компьютерные науки |
0 |
194 |
16 апр 2017, 21:11 |
|
Паскаль. Условный оператор
в форуме Информатика и Компьютерные науки |
1 |
496 |
14 июл 2014, 12:47 |
|
Паскаль. Кодировка символов
в форуме Информатика и Компьютерные науки |
4 |
792 |
23 июл 2014, 14:31 |
Часовой пояс: UTC + 3 часа [ Летнее время ] |
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5 |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения |