Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 447
от 23.09.2007, 09:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 245, Экспертов: 53
В номере:Вопросов: 3, Ответов: 13


Вопрос № 102288: Здраствуйте товарищи эксперты!Помогите пожалуйста! Напишите мне 3 программы!Заранее огромное спасибо!!! 1) Для заданного с клавиатуры натурального числа к, вычислить S: S=(1/sin1)+(1/(sin1+sin2))+...+(1/(sin1+...+sink)) (Эту программу сде...
Вопрос № 102340: Нужно решить следующую задачу, задача элементарная, но у меня какие то ошибки он пишет, поэтому прошу написать весь код. Если кому то не сложно: Подсчитать количество отрицательных, среди чисел a, b, c...
Вопрос № 102427: Здравствуйте эксперты! У меня такой вопрос: в переменной типа Word(слово) как идут байты? То есть слева направо или справо налево(где старший и младший)? В приложении пример конструкции....

Вопрос № 102.288
Здраствуйте товарищи эксперты!Помогите пожалуйста! Напишите мне 3 программы!Заранее огромное спасибо!!!
1) Для заданного с клавиатуры натурального числа к, вычислить S:
S=(1/sin1)+(1/(sin1+sin2))+...+(1/(sin1+...+sink))
(Эту программу сделать с помощью двойного вложенного цикла)
2)Построить диагональную матрицу D(n+1)(n+1):
|Ao 0 0 ... 0|
|0 A1 0 ... 0|
D=|0 0 A2 ... 0|
|.....................|
|0 0 0 ... An|
3)Разбить экран главной диагональю. Окрасить верхнюю и нижнюю части экрана красным и синим цветами. Изобразить желтую окружность диаметром D перемещающуюся по вертикали через центр экрана.
Отправлен: 17.09.2007, 09:46
Вопрос задал: Serg (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Delph
Здравствуйте, Serg!

В приложении решение Вашей первой задачи. Там реализовано 2 варианта: первый, как Вы и просили, в виде двух циклов (второй вложен в первый). Второй вариант оптимизирован по быстродействию, поскольку второй цикл исключён. Вы можете убедиться по выводу, что оба варианта дают одинаковые результаты.

Приложение:

---------
Сомневайся во всём! Реальность часто бывает не такой, как мы о ней думаем.

Ответ отправил: Delph (статус: 9-ый класс)
Ответ отправлен: 17.09.2007, 11:06
Оценка за ответ: 5

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Serg!

Смотрите приложение 2-я и 3-я задачи.
Последовательность А - не задана, я считал все элементы равными 1.
Удачи Вам!

Приложение:

---------
И только наступив на грабли мы приобретаем драгоценный опыт!

Ответ отправил: Зенченко Константин Николаевич (статус: Специалист)
Ответ отправлен: 17.09.2007, 17:56
Оценка за ответ: 5

Отвечает: Tribak
Здравствуйте, Serg!
1 задача:
program www;
uses crt;
var
r,s:real;
i,j,n:integer;
begin
write('n=');
readln(n);
s:=0;
for i:=1 to n do
begin
r:=0;
for j:=1 to i do r:=r+sin(j);
s:=s+1/r;
end;
writeln(s);
readln;
end.
2 задача:
program www;
uses crt;
var
i,j,n:integer;
begin
write('n=');
readln(n);
inc(n);
for i:=1 to n do
begin
for j:=1 to n do
if i=j then write('A', i-1,' ')
else write('0 ');
writeln;
end;
readln;
end.
Ответ отправил: Tribak (статус: 3-ий класс)
Ответ отправлен: 17.09.2007, 22:29
Оценка за ответ: 5

Отвечает: Артём1983
Здравствуйте, Serg!
Я решил первые две задачи, в третьей сделано не всё.Смотрите приложение. Так же хочу предупредить что в третьем решении могут возникнуть проблемы с путями и драйвером.

Приложение:

Ответ отправил: Артём1983 (статус: 2-ой класс)
Ответ отправлен: 20.09.2007, 00:46


Вопрос № 102.340
Нужно решить следующую задачу, задача элементарная, но у меня какие то ошибки он пишет, поэтому прошу написать весь код. Если кому то не сложно:
Подсчитать количество отрицательных, среди чисел a, b, c
Отправлен: 17.09.2007, 15:56
Вопрос задал: Вадюкин Николай (статус: Посетитель)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Andreev Oleg
Здравствуйте, Вадюкин Николай!
Программа действительно элементарная, проверенна, работает.
Если что-то не понятно пишите на почтовый ящик, т.к.отслеживать вопрос бесплатно у меня недостаточный уровень..
program one;
uses crt;
var a,b,c:real;
i:integer;
begin
writeln('Vvedite a'); readln(a);
writeln('Vvedite b'); readln(b);
writeln('Vvedite c'); readln(c);
i:=0;
if a<0 then i:=i+1;
if b<0 then i:=i+1;
if c<0 then i:=i+1;
writeln('Otricatelnyh - ',i);
readkey
end.
Ответ отправил: Andreev Oleg (статус: 4-ый класс)
Ответ отправлен: 17.09.2007, 16:06
Оценка за ответ: 5
Комментарий оценки:
Спасибо, ошибку обнаружил

Отвечает: Багиев Александр
Здравствуйте, Вадюкин Николай!
Элементарно, вот пример из несколько строк:

Приложение:

Ответ отправил: Багиев Александр (статус: 2-ой класс)
Ответ отправлен: 17.09.2007, 21:16

Отвечает: Gh0stik
Здравствуйте, Вадюкин Николай!

Вот есть еще один способ и без применения дополнительных переменных, а используя стандартную функцию Ord().
Врезка из справки:
Ord (функция)
▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Возвращает порядковое значение выражения перечисляемого типа.
Объявление:
Function Ord(X) : Longint;
Замечания:
Параметр X - выражение перечисляемого типа. Результат имеет тип LongInt, a его значение - порядковый номер X в типе.


Соответственно Ваше задача может быть записана как:
var a,b,c:real;
begin
a:=-3; b:=-4; c:=5; {определение исходных данных, если необходимо можно организовать ввод с клавиатуры}
writeln('Отрицательных чисел', ord(a<0)+ord(b<0)+ord(c<0)); {непосредственно вывод результата}
end.


Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессор)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 17.09.2007, 21:45

Отвечает: Tribak
Здравствуйте, Вадюкин Николай!
program www;
var a,b,c:real;
i:integer;
begin
write('a=');
readln(a);
write('b=');
readln(b);
write('c=');
readln(c);
i:=0;
if a<0 then inc(i);
if b<0 then inc(i);
if c<0 then inc(i);
writeln(i);
readln;
end.
Ответ отправил: Tribak (статус: 3-ий класс)
Ответ отправлен: 17.09.2007, 22:16

Отвечает: Витек
Здравствуйте, Вадюкин Николай!
var a,b,c:real;
n:integer;
begin
readln(a,b,c);
n:=0;
if a<0 then inc(n);
if b<0 then inc(n);
if c<0 then inc(n);
write(n);
end.

---------
ohne fleis, keine preis
Ответ отправил: Витек (статус: 3-ий класс)
Ответ отправлен: 18.09.2007, 10:25

Отвечает: Артём1983
Здравствуйте, Вадюкин Николай!
Конечно Вы могли бы привести свой код посмотрелибы на Ваши ошибки. Подсказали что не так.

Приложение:

Ответ отправил: Артём1983 (статус: 2-ой класс)
Ответ отправлен: 20.09.2007, 00:35


Вопрос № 102.427
Здравствуйте эксперты!

У меня такой вопрос: в переменной типа Word(слово) как идут байты? То есть слева направо или справо налево(где старший и младший)?
В приложении пример конструкции.

Приложение:

Отправлен: 18.09.2007, 09:27
Вопрос задал: Muratov Radik (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 7)

Отвечает: Yandrey
Здравствуйте, Muratov Radik!
Старший слева младший справа. 2F7A зесь 2F старший 7A младший.
Ответ отправил: Yandrey (статус: Студент)
Ответ отправлен: 18.09.2007, 09:46
Оценка за ответ: 5
Комментарий оценки:
спасибо

Отвечает: Delph
Здравствуйте, Muratov Radik!

В типе Word ("слово") первым идёт младший байт, а вторым - старший. Приведённая в приложении программа позволяет в этом убедиться. При использовании 32-битных целых "слова" подчиняются тому же правилу: сначала младшее, а уже потом старшее. В итоге самый младший байт оказывается по наименьшему адресу в памяти, а самый старший - по наибольшему. Пошло это с давних времён, когда процессоры были ещё восьмибитными, но подробно об этом рассказать не смогу - сам знаю не много.

Приложение:

---------
Сомневайся во всём! Реальность часто бывает не такой, как мы о ней думаем.

Ответ отправил: Delph (статус: 9-ый класс)
Ответ отправлен: 18.09.2007, 09:48
Оценка за ответ: 5
Комментарий оценки:
СПасибо за развернутый ответ, но уточните пжлста где первый и где второй. СЛева напрво или справа на лево?

Отвечает: Багиев Александр
Здравствуйте, Muratov Radik!

В компьютере младший байт всегда находится в начале, а старший в конце. Это удобно для быстрого преобразования типов.
Ответ отправил: Багиев Александр (статус: 2-ой класс)
Ответ отправлен: 18.09.2007, 19:46
Оценка за ответ: 4
Комментарий оценки:
Не полный ответ. Непонятно где начало, а где конец?


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.60 от 22.09.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное