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

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

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

> Паскаль. массивы.
aigulia
сообщение 22.04.2010 15:14
Сообщение #1





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

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


Помогите написать программы на Паскале! Сама в этом не разбираюсь, по этому прошу вашей помощи! Заранее спасибо!!

1. Если уравнение ax2 + bx + c = 0 (a не равно 0) имеет вещественные корни, то логической переменной t присвоить значение true, а переменным x1 и x2 – сами корни, иначе же переменной t присвоить false, а значения переменных x1и x2 не менять.
2. Дано 50 вещественных чисел. Найти порядковый номер того из них, которое наиболее близко к какому-нибудь целому числу.
3. Дано натуральное k. Напечатать k-ю цифру последовательности 1234567891011121314…, в которой выписаны подряд все натуральные числа.
4.Даны целые числа x1, x2, …, x55. Вычислить величину
x1(x2+x3)(x4+x5+x6)(x7+x8+x9+x10)…( x46+x47+…+x55).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
TarasBer
сообщение 23.04.2010 10:02
Сообщение #2


Злостный любитель
*****

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

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


> for i:=1 to 50 do if Abs(a[i]-Round(a[i]))<d then m:=i;

А кто будет менять d?


for i := 1 to 50 do begin
ad := Abs(a[i] - Round(a[i]));
if (i = 1) or (ad < d) then begin
m := i;
d := ad;
end;
end;



> По 4-й задаче: я б сделал вот так:

Да, так лучше, тут я сбыдлокодил.

> Потом я все же дал себе труд перевести этот "псевдокод" на Pascal, и - результат негативный ((. TarasBer, ищи ошибку. Мне кажется, ты запутался в последних подсчетах, но настаивать не буду..

Очень может быть. Надо посмотреть. Вообще, конечно, можно тупо писать по очереди в строку, пока её длина не превысит k (чтобы память не тратилась, можно только запоминать длину, а строку заново переписывать для каждого числа), но это другой порядок скорости - O(n) вместо логарифма, мне это не нравится.


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

Сообщений в этой теме


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

 



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