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

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

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

> Задача на тему "Массивы"
kvadrat
сообщение 15.05.2008 22:40
Сообщение #1


Пионер
**

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

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


Условие:
Прикрепленное изображение

Моё решение:
program qwsdfew;
var x,y:integer;
begin
for x:=1 to 12 do
begin
y:=(6*ln(arctan(x)+1.5*sqrt(x)));
writeln('x:5:2,' ',y:5:2');
x:=x+0.05;
end;
end.

Тело задачи должно быть правильным, но выдаёт ошибку о несоответствии типов, как исправить? И чёто непойму где тут должны быть массивы?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
mind abuse
сообщение 15.05.2008 23:44
Сообщение #2


Студент
*

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

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


И x и y должны быть вещественными, там же нецелые величины. Так всё в порядке, ошибки лишь на уровне случайных лагов.
Код
program qwsdfew;
var
i:integer;
x,y:real;
begin
x:=1;
for i:=1 to 12 do
begin
y:=(6*ln(arctan(x)+1.5*sqrt(x)));
writeln(x:5:2,'       ',y:5:2);
x:=x+0.05;
end;
readln;
end.



А вот где массивы, хм.... ну может быть так:

Код
program qwsdfew;
uses crt;
var
a, b: array[1..100] of real;
i:integer;
x,y:real;
begin
clrscr;
for i:=2 to 12 do
begin
a[1]:=1;
a[i]:=a[i-1]+0.05;
b[i]:=(6*ln(arctan(a[i])+1.5*sqrt(a[i])));
writeln(a[i],'       ',b[i]);
end;
readln;
end.


Только доделайте так, чтоб оно и x1=1 выводило.

Сообщение отредактировано: mind abuse - 15.05.2008 23:59


--------------------
...Чего-то хотелось: не то конституции, не то севрюжины с хреном, не то кого-нибудь ободрать.
(М. Е. Салтыков-Щедрин)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
kvadrat
сообщение 16.05.2008 14:45
Сообщение #3


Пионер
**

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

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


Вот несколько вопросов по решению
program qwsdfew;
uses crt;
var
a, b: array[1..100] of real;
i:integer;
x,y:real; {эти переменные тут ненужны думаю}
begin
clrscr;
for i:=2 to 12 do {почему c 2х а не с 1?}
begin
a[1]:=1; {что значит эта строчка?}
a[i]:=a[i-1]+0.05; {зачем тут минус один?}
b[i]:=(6*ln(arctan(a[i])+1.5*sqrt(a[i])));
writeln(a[i],' ',b[i]);
end;
readln;
end.



Сообщение отредактировано: kvadrat - 16.05.2008 14:49
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
mind abuse
сообщение 16.05.2008 15:45
Сообщение #4


Студент
*

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

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


Цитата(kvadrat @ 16.05.2008 15:45) *

Вот несколько вопросов по решению
program qwsdfew;
uses crt;
var
a, b: array[1..100] of real;
i:integer;
x,y:real; {эти переменные тут ненужны думаю}
begin
clrscr;
for i:=2 to 12 do {почему c 2х а не с 1?}
begin
a[1]:=1; {что значит эта строчка?}
a[i]:=a[i-1]+0.05; {зачем тут минус один?}
b[i]:=(6*ln(arctan(a[i])+1.5*sqrt(a[i])));
writeln(a[i],' ',b[i]);
end;
readln;
end.



Да, x,y не нужны, раз используем массивы. "a[i]:=a[i-1]+0.05" означает, что на каждой итерации значение нашего икса увеличивается на 0.05 по сравнению с предыдущим: x[2] = x[1] + 0.05 = 1+0.05=1.05; x[3]=x[2]+0.05 = 1.05+0.05=1.10, и т.д. "a[1]:=1;" - ну наш массив должен ведь с чего-то начинаться, первый элемент по условию x1=1. Почему i:=2 - не знаю, мозг не хотел думать, как заставить программу выводить первый элемент. Вот, посмотрите чуть исправленное, на этот раз выводит всё.

Код
program qwsdfew;
uses wincrt;
var
x, y: array[0..100] of real;
i:integer;

begin
clrscr;
for i:=1 to 12 do
begin
x[0]:=0.95;
x[i]:=x[i-1]+0.05;
y[i]:=(6*ln(arctan(x[i])+1.5*sqrt(x[i])));
writeln(x[i],'       ',y[i]);
end;
readln;
end.




--------------------
...Чего-то хотелось: не то конституции, не то севрюжины с хреном, не то кого-нибудь ободрать.
(М. Е. Салтыков-Щедрин)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
kvadrat
сообщение 17.05.2008 13:52
Сообщение #5


Пионер
**

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

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


good.gif Благодарю, всё отлично работает! тока непонял зачем wincrt я заменил просто на crt
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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