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

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

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

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

Выпуск № 556
от 26.01.2008, 13:05

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

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 119448: Здравствуйте!!! Пожалуйста объясните алгоритм программы. Задание - решение по методу Гаусса(система совместна)....
Вопрос № 119474: Уважаемые эксперты помоги пожалуйста: Даны координаты n-точек на плоскости. Нужно найти расстояние между всеми парами точек....
Вопрос № 119479: Здравствуйте дорогие эксперты помогите решить задачи! Тема: Множества Задача 1: С клавиатуры вводится предложение состоящее из произвольных символов и заканчивающихся точкой.Определите сколько букв русского алфавита встречается в тексте, каки...

Вопрос № 119.448
Здравствуйте!!! Пожалуйста объясните алгоритм программы. Задание - решение по методу Гаусса(система совместна).

Приложение:

Отправлен: 20.01.2008, 17:20
Вопрос задал: Swordfish (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Verena
Здравствуйте, Swordfish!
В этой программе реализован следующий алгоритм: сначала вот в этой части:

for i := 0 to pred(n-1) do begin
for j := i+1 to pred(n) do begin
multiplier := A[j][i] / A[i][i]; {коэффициент домножения}
for k := 0 to pred(n) do {цикл вычитания i-ой строки, домноженной на коэффициент, из j-ой}
A[j][k] := A[j][k] - A[i][k] * multiplier; {изменение строки}
B[j] := B[j] - B[i] * multiplier; {изменение свободных членов}
end;
end;

обнуляются все элементы под главной диагональю матрицы коэффициентов уравнений (для данного примера это a[1][0], a[2][0], a[2][1]). Для этого из каждой строки вычитается предыдущая, домноженная на коэффициент (он обозначает, сколько строк надо взять, чтобы обнулился нужный элемент, например, в первом случае, это будет 0.2 = 2/10, т.е. сколько надо вычесть из двойки десяток, чтобы превратить двойку в ноль). Таким образом, получается система уравнений, где в последней строке задействована одна переменная, в предпоследней - две, и т.д. В следующей части кода формируется ответ:

for i := n-1 downto 0 do
begin
X[i] := B[i]; {сначала ответ равен свободному члену}
for j := n-1 downto succ(i) do {массив по ненулевым элементам (тем что выше главной диагонали или лежат на ней)}
X[i] := X[i] - A[i][j] * X[j]; {вычитаем из свободного члена известные переменные}
X[i] := X[i] / A[i][i]; {делим на коэффициент при переменной}
end;

Здесь матрицу необходимо рассматривать снизу вверх, поскольку на первом шаге мы можем найти только значение самой последней переменной - для этого достаточно просто поделить свободный член на последний в последнем столбце и строке матрицы коэффициентов элемент (в этом случае во внутренний цикл по j мы даже не зайдём). На следующей итерации цикл по j выполнится один раз, поскольку в предпоследнем уравнении уже задействованы две переменные, значение одной из которых мы нашли на предыдущем шаге. Соответственно, мы подставляем вместо неё нужное значение, вычитаем получившееся произведение из свободного члена и, по выходу из цикла, делим новое значение на соответствующий искомой переменной коэффициент. И так далее, на следующем шаге внутренний цикл по j просто выполнится дважды, потом трижды... Так мы найдём все нужные значения.
Рассматривать вывод массива я не буду, там и так всё ясно.
Удачи!


-----
∙ Отредактировал: Gh0stik (Академик)
∙ Дата редактирования: 21.01.2008, 23:25

---------
Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Студент)
Ответ отправлен: 21.01.2008, 23:08
Оценка за ответ: 5
Комментарий оценки:
Дал полные, четкие объяснения.


Вопрос № 119.474
Уважаемые эксперты помоги пожалуйста: Даны координаты n-точек на плоскости. Нужно найти расстояние между всеми парами точек.
Отправлен: 20.01.2008, 20:43
Вопрос задал: Семин Алексей Юрьевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Vassea
Здравствуйте, Семин Алексей Юрьевич!
Попробуйте таким образом
Координаты можно хранить в массиве
Data:array [1..100] of record
x,y:real;
end;
Перебор всех пар точек можно осуществить с помощью циклов for
for i:=1 to n-1 do
for j:=i+1 to n do
begin
L:=sqrt(sqr(data[i].x-data[j].x)+sqr(data[i].y-data[j].y))
end;
Ответ отправил: Vassea (статус: Студент)
Ответ отправлен: 20.01.2008, 21:03


Вопрос № 119.479
Здравствуйте дорогие эксперты помогите решить задачи!
Тема: Множества
Задача 1: С клавиатуры вводится предложение состоящее из произвольных символов и заканчивающихся точкой.Определите сколько букв русского алфавита встречается в тексте, каких букв гласных или согласных больше в этом предложении?

Задача 2: Из множества целых чисел от 1 до 50 выбрать множество чисел делящихся на 6 без остатка и множество чисел делящихся без остатка или на 2 или на 3?
Отправлен: 20.01.2008, 21:13
Вопрос задал: Волошин Виталий Алексеевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Vassea
Здравствуйте, Волошин Виталий Алексеевич!
1 задача
можно попробывать сделать так.
Задать два множество
s1=['А','а','Е','е' и т.д] т.е множество всех гласных букв
s2 -- множество всех согласных букв
Можно его задать как разность двух множеств
['А'..'Я','а'..'я']-s1 чтобы не мучаться со всеми согласными
Далее перебираем каждый элемент и увеличиваем счетчик g -- если гласная и счетчик s -- если согласная
g:=0; s:=0;
for i:=1 to length(str) do
begin
if str[i] in s1 then inc(g);
if str[i] in s2 then inc(s)
end;
Cумма s+g -- и будет общее число букв русского алфавита.

Если же необходимо гласные и согласные и английского алфавита, то придется писать множество, в которое будут входить и гласные буквы английского алфавита. Множество согласных можно также будет сделать вычитание.
Единственная проблема - определиться какие буквы в английском алфавите гласные. По-моему, там проблемы с Y.
Ответ отправил: Vassea (статус: Студент)
Ответ отправлен: 20.01.2008, 21:36
Оценка за ответ: 5
Комментарий оценки:
Спасибо!

Отвечает: SHERRY
Здравствуйте, Волошин Виталий Алексеевич!
Решение второй задачи с пояснениями в приложении.

Приложение:

---------
Самурай без меча подобен самураю с мечём, только без меча..

Ответ отправил: SHERRY (статус: 5-ый класс)
Ответ отправлен: 21.01.2008, 00:21
Оценка за ответ: 5
Комментарий оценки:
Спасибо!


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

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

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

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

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

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


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


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

В избранное