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

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

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

 
 Ответить  Открыть новую тему 
> 3 несложные задачи
сообщение
Сообщение #1


Новичок
*

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

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


Всем привет! Признаюсь сразу - с Паскалем я не в ладах, а для вас это раз плюнуть smile.gif Бьюсь над этими задачами уже не первую неделю - чё-то никак.
Помогите, кому не лень. Заранее благодарен
1.Два отрезка на плоскости заданы координатами своих концов. Определить, имеют ли эти отрезки общие точки.
Замечание. Необходимо рассмотреть различные случаи взаимной ориентации отрезков: на одной прямой, на параллельных или пересекающихся прямых.
2.Просуммировать элементы матрицы A(n,n) по каждой из линий, параллельных главной диагонали. Напечатать полученные суммы.(читал в FAQ'е - не выходит...)
3.Натуральное число в p-ичной системе счисления задано своими цифрами, хранящимися в массиве K(n). Проверить корректность такого представления и перевести число в q-ичную систему (возможно, число слишком велико, чтобы получить его внутреннее представление; кроме того, p 10, q 10).
и может быть ещё одну:Заданный список русских фамилий (вместе с именами и отчествами) упорядочить по алфавиту. Проверить (и исправить, если нужно) написание собственных имен с прописных букв: Заданный список русских фамилий (вместе с именами и отчествами) упорядочить по алфавиту. Проверить (и исправить, если нужно) написание собственных имен с прописных букв.
Хотя бы намекните как делать, плиз-з-з-з!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

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

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


1. http://algolist.manual.ru/maths/geom/inter.../lineline2d.php
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


[quote=Ozzя,18.05.05 7:18]
Спасибо вам огромное. Не могли бы с остальными помочь?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

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

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


№ 4
Вот похожая программка: Сортирует список студентов по ФИО. Лишнее можно убрать.

Проверка фамилии
If not Upcase(Imia[1]) then Upcase(Imia[1]);
имени:
следующий символ после пробела и опять
If not Upcase(Imia[k]) then Upcase(Imia[k]);

Функция upcase (с поддержкой русского языка) есть в книге Фаронова

Сообщение отредактировано: Ozzя -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


Спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата(Ozzя @ 18.05.05 10:35)
Функция upcase (с поддержкой русского языка) есть в книге Фаронова

:p2: Здесь тоже есть...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


Благодарю за помощь. 1-ую задачу решил (не решить после этого было тяжело<_< ) А есть ли какие-то варианты насчёт матриц. FAQ не помогает!!! там с индексами матрицы какая-то путаница. Помогите, пожалуйста.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

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

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


и ещё пожалуйста подскажите - как сортировать по алфавиту (есть ли в Паскале встроенная сортировка?), т.е. по какому критерию выбирать следующее значение - это же не числа больше-меньше?.. huh.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гуру
*****

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

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


Цитата(azi @ 18.05.05 12:50)
и ещё пожалуйста подскажите - как сортировать по алфавиту (есть ли в Паскале встроенная сортировка?), т.е. по какому критерию выбирать следующее значение - это же не числа больше-меньше?.. huh.gif

для строк и символов допустимы операции сравнения < > и т.д, так как
сравнение идет по коду символа, и можно смело писать:
if 'a' < 'b' ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

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

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


ни фига себе! никогда бы не подумал... huh.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гуру
*****

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

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


Цитата
Операции отношения =, о, >, <, >=, <= выполняются над двумя строками посимвольно, слева направо с учетом внутренней кодировки символов (см. табл.4.1 и прил.2). Если одна строка меньше другой по длине, недостающие символы короткой строки заменяются значением СНR(0) .

Следующие операции отношения дадут значение TRUE:

'''' < ' . '

'А' > '1'

'Turbo' <' Turbo Pascal'

'Паскаль' >'Turbo Pascal'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Цитата(azi @ 18.05.05 12:32)
FAQ не помогает!!! там с индексами матрицы какая-то путаница.

А вот с этого места я попрошу поподробнее. В каких именно местах в FAQ-е есть путаница с индексами матрицы? Я все-таки проверяю КАЖДУЮ программу на нескольких примерах перед занесением ее в FAQ... Так что я жду ссылку...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

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

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


ну не то, чтобы путаница...
Сумма элементов, стоящих выше главной диагонали:
CODEs:=0;
for i:=1 to n do
for j:=i to n do s:=s+a[i,j];

Сумма элементов, стоящих ниже побочной диагонали:
CODEs:=0;
for i:=1 to n do
for i:=n-i+1 to n do s:=s+a[i,j];

тут что-то не то со счётчиками - суммируются не те элементы... может быть надо to n-i?!! Я же говорю, что в Паскале не совсем соображаю, но тут явно не получается. И ещё: как заносить суммы по линиям, параллельным диагонали в отдельные массивы?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Бывалый
***

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

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


Со счетчиками все как будто в порядке, если не считать, что есть опечатка в строке
Код
for i:=n-i+1 to n do s:=s+a[i,j];
Вместо "for i" должно быть "for j". Но это, видимо, опечатка Azi. Возможно, проблема в ориентации матрицы? Данные циклы предполагают, что
а) первый индекс - это номер строки, а второй - номер столбца, и что
б) выражение "элементы выше главной диагонали" надо читать, как "элементы выше главной диагонали и элементы самой главной диагонали". Т.е.
Цитата
1111
1110
1100
1000

Если же имелось в виду
Цитата
1110
1100
1000
0000

т.е. НЕ ВКЛЮЧАЯ саму диагональ, тогда надо циклы переделывать.
А ввобще пользуйтесь старым добрым способом:
Код
s:=0;
for i:=1 to n do
for j:=i to n do
  begin
     s:=s+a[i,j];
     writeln('i=',i,' j=',j,' s=',s,' a=',a[i,j]);
  end;

и сразу увидите, какие элементы суммируются. Глядишь, и разберетесь. Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Гость






azi,
"учите матчасть" (С)
Проверка. Матрица задана так
Цитата
11  12  13
21  22  23
31  32  33

1. Выше главной диагонали (включая главную диагональ !!!):
i = 1; j = 1, 2, 3
i = 2; j = 1, 2
i = 3; j = 3
Все работает

2. Ниже побочной диагонали (включая и саму диагональ !!!)
i = 1; j = 3
i = 2; j = 2, 3
i = 3; j = 1, 2, 3
Тоже не вижу ошибки.
Я надеюсь не нужно напоминать, что есть главная диагональ, а что - побочная?
Так что давайте оставим FAQ в покое. Еще раз повторяю - ничего просто так туда не добавляется...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Гость






Цитата(azi @ 17.05.05 19:14)
3.Натуральное число в p-ичной системе счисления задано своими цифрами, хранящимися в массиве K(n). Проверить корректность такого представления и перевести число в q-ичную систему (возможно, число слишком велико, чтобы получить его внутреннее представление; кроме того, p<10, q<10).

Все просто...
вначале проверяем корректность представления:
i := 1; isCorrect := true;
while (i <= n) and isCorrect do begin
isCorrect := (K[i] <= p);
inc(i)
end;
{ если здесь isCorrect = True то число корректно, иначе - нет }


далее, с помощью процедур из FAQ: Общие вопросы по математике преобразуем число из p-ичной системы в q-ичную:
var
s: string;
...
if isCorrect then begin
s := '';
for i := 1 to n do s := s + chr(K[i] + 48);
writeln('q-th system: ', FromDec(ToDec(s, p), q))
end
else writeln('invalid data');


Ну, а проверить не слишком ли велико число, я предоставляю тебе...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Новичок
*

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

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


Volvo, спасибо тебе огромное. Буду за тебя молиться!!! :D
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 17.05.2024 2:05
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name