Четверг, 17.10.2024
Мой сайт
Меню сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Гостевая книга [ Добавить запись ]

Страницы: « 1 2 ... 73 74 75 76 77 ... 123 124 »
Показано 1111-1125 из 1848 сообщений
738. MAX   (24.12.2004 09:50)
0  
Ты, что забыл про задачу "Отрезок"?
Ответ: Нет. Просто только вышел после болезни :((
И надо срочные долги ликвидировать
===========================================
Привет, наконец-то дошли руки до Вашей задачи. Она может быть решена несколькими способами.
1) "Пройтись" по столбикам X - по не принадлежит - пока принадлежит = дубовый способ
2) Я решал по-другому. Если нужны пояснения, пиши:
procedure Swap(var s1, s2: Integer);
var buf: Integer;begin buf:=s1; s1:=s2; s2:=buf end;

var x1, y1, x2, y2: Integer;
d, dx, dy, count: Integer;
BEGIN
x1:= 6; y1:= 0; x2:= 0; y2:= 2; dx:=abs(x2 - x1); dy:= abs(y2 - y1);
if dx = 0 then Count:=(dy+2)*2 else
if dy = 0 then Count:=(dx+2)*2 else
begin Count:=4;
x1:=0; y1:=0; x2:=x1+dx; y2:=x2+dy;
if dx < dy then begin swap(dx, dy); swap(x2, y2) end;
d:=0; while x1 < x2 do begin
d:=d + dy;
if d < dx then inc(count)
else if d > dx then begin d:=d - dx; inc(count, 2) end
else begin inc(count, 3); d:=0 end;
inc(x1) end; end;
WriteLn(Count) END.

737. Юрий   (21.12.2004 10:56)
0  
Помогите решить:
ввести две предложения. выбрать те из них слова которые встречаются обоих предложениях.
Ответ: Чуть ниже в гостевой для "Лели" есть решение задачи "Выделить слова". Точнее, одно слово. Но по-моему несложно передать для решения Вашей задачи. Там нужно словами только 2 массива заполнить и потом сравнивать
Если не справитесь - пишите

736. Насыров Юрий   (21.12.2004 10:24)
0  
Приглашаю на сайт IGRNEFT.NAROD.RU
Обязательно скачаю все Ваши игрушки.
У Вас хороший сайт.
Ответ: Спасибо за приглашение. Только обращу Ваше внимание, что у нас есть и форум, на котором обсуждаются не только вопросы программирования на http://www.yourpascal.com.
Приходите :)) Ждем

735. Ляля   (20.12.2004 20:52)
0  
Пожалуйста, помогите решить ещё одну задачку(последнюю). А за первую огромное спасибо!!!
Дана матрица размером N*N, заполненная случайными числами в диапазоне от 0 до 100. Найти такую последовательность из М элементов, расположенных либо по вертикали, либо по горизонтали, либо по диагонали, чтобы сумма элементов была максимальной.
Ответ: А что делать то с этой строкой-столбцом - диагональю? Какой вывод программы должен быть?
Вы не ответили. Все ж выложу заготовку решения:
program dec_21a;
const
N = 8; max_row : Integer = 0;
max_col : Integer = 0; max_diag: Integer = 0;
var
M, i : Integer;
a : array[1..N, 1..N] of Integer;
row, col, dia, Index: Integer;
maxsum_inRow, maxsum_inCol, maxsum_inDiag : longint;
sum : Longint;
BEGIN
WriteLn;
for row := 1 to N do for col:=1 to N do
a[row, col]:=Random(101); {:=0 для проверки}
{ a[1, 3]:=1; a[1, 5]:=8; a[2, 5]:=4; a[1, 1]:=10; для проверки}
for row := 1 to N do begin
for col:=1 to N do write(a[row, col]:8); writeLn end;

repeat
Write(''''Введите число элементов больше 0, но меньше '''',N+1,'''': ''''); ReadLn(M);
until (M>0) and (M<=N);

{Поиск по строкам}
Maxsum_inRow:=a[1,1];
for row:=1 to N do begin
for col:=1 to N - M + 1 do {допустим N=10, a M=4, последний равен 7}
begin Sum:=0; for i:=col to col + M-1 do sum:=sum+a[row, i];
if Sum > MaxSum_inRow then
begin MaxSum_InRow:=Sum; max_row:=row; Index:=col end;
end; end;
WriteLn(''''Row: '''',max_row,'''' '''',maxSum_inRow,'''' '''',index);
{Поиск по столбцам}
Maxsum_inCol:=a[1,1];
for col:=1 to N do begin for row:=1 to N - M +1 do
begin Sum:=0; for i:=row to row+M-1 do
sum:=sum+a[i, col];
if Sum > MaxSum_inRow then
begin MaxSum_InCol:=Sum; max_Col:=col; Index:=row end; end; end;
WriteLn(''''Col: '''',maxSum_inCol,'''' '''', max_col,'''' '''',index);

{Поиск в главной диагонали}
MAxSum_inDiag:=0; for col:=1 to N -M + 1 do
begin sum:=0; for i:= col to col+M-1 do Sum:= Sum+a[i, i];
if Sum > MaxSum_InDiag then begin
MaxSum_inDiag:=sum; max_diag:=col end end;
WriteLn(''''Diag: '''',max_diag,'''' '''',maxSum_inDiag);
END.

734. max   (20.12.2004 18:07)
0  
Помогите решить задачу
Задача Отрезок.

Координатная плоскость разбита на еденичные квадраты с целочисленными координатами.
Требуется определить, Сколько всего таких квадратов пересекаются с отрезком,
заданным координатами точек (x1,y1) и (x2,y2);

Формат входных данных.
Целые числа x1, y1, x2, y2. Все числа по абсолютной величине не превосходят 10000.
Указанные точки различны, то есть либо x1<>x2, либо y1<>y2.

Формат выходных данных.
Количество еденичных квадратов, которые имеют хотя бы одну общую точку с заданным отрезком.

Пример:

Ввод Вывод
-1 10
-1
1
2
Ответ: А задача-то олимпиадная :)). Хотя и "едЕничная". Сейчас придумываю алгоритм, покруче постараюсь. По-моему, здесь следует использовать идеи алгоритма Брезенхема для вычерчивания линии
------------------------
Решение приведено в ответе на напоминание Max''''a 2004-12-24 09:50:47

733. Ляля   (20.12.2004 14:33)
0  
Переменная Delimits типа string содержит допустимые знаки препинания. Выделить из предложения N-ое слово. Слово не должно быть пустой строкой.
Ответ: Последнее задание - загадочно звучит. Так что его проигнорировал. Шибко сильно не тестировал. Если что и не сумеете исправить - пишите

const
Letters: Set of CHAR = [''A''..''Z'', ''a''..''z'', ''А''..''п'', ''р''..''я''];
var
Delimitis: String;
i, n: Integer;
s: String;
BEGIN
Delimitis:=''Это строка, в которой нужно! слово найти. И точка? А?'';
n:=4; {Можно это вводить - сами справитесь}
i:=1;
Writeln(''n = '', n);
while (n > 0) and (i <= Length(Delimitis)) do
begin
{Ищем начало слова}
while (NOT (Delimitis[i] in Letters)) and (i <= Length(Delimitis)) do
inc(i);
if i=length(Delimitis) then Break;
{Ищем конец слова}
s:=''''; dec(n);
while (Delimitis[i] in Letters) and (i <= Length(Delimitis)) do
begin s:=s+Delimitis[i]; inc(i) end;
end;
WriteLn(Delimitis);
writeLn(s);
END.

732. барбитурат   (19.12.2004 23:58)
0  
Други .... подскажите кто знает ... какой есть WAP-сайт с исходниками программ ...
Ответ: Наверно, тупой я: а что такое WAP-сайт?

731. STAS   (19.12.2004 19:02)
0  
пацаны отвечаю мне хана если не напишу работу


подсчитать число точек, находящихся внутри круга радиусом r с центром в начале координат. Координаты заданы массивами X(100),Y(100)
примечание:расстояние точки от начала координат вычислять в подпрограмме


заранее спасибо.
Ответ: function IsInside(x, y, r: Longint): Boolean;
begin
IsInside:=(x*x + y*y) <= r*r
end;

var
R: Integer;
X, Y: Array[1..100] of Integer;
i, Count: Integer;
BEGIN
{Заполняем}
R:=200;
for i:=1 to 100 do
begin
X[i]:=Random(300); Y[i]:=Random(300);
end;
{Считаем}
Count:=0;
for i:=1 to 100 do
if IsInside(X[i], Y[i], R) then
Count:=Count+1;
WriteLn(''Число точек внутри: '',Count)
END.

730. flash   (19.12.2004 10:50)
0  
спасибо тебе за то что ты сделал этот сайт!!!

729. flaiR   (17.12.2004 21:14)
0  
А я сделал вирус!
Ответ: Если решите поделиться с другими своими разработками, то присылайте - разместим на сайте. Только обязательно напишите, как Вас представить, как с Вами могут связаться те, кому работа покажется интересной

728. MnepoX   (17.12.2004 12:01)
0  
АААА!
Помогите !!!!
До 19.12.2004 очень надо, Заранее спасибо. Задание:
Задание
Создать параметризованный тип данных - множество. Этот тип предназначен для хранения множества элементов и выполнения операций над ними. Реализовать классические операции над множествами - объединение, пересечение и симметричная разность. Для создания данного типа необходимо иметь простые представления о теории множеств.

Теория множеств

Будем считать множеством набор уникальных элементов. Таким образом, никакие два элемента в составе множества не могут иметь одинаковое значение. Например, в соответствии с принятым определением, нижеприведенные данные будут представлять собой допустимое множество:
{А, В, С}
Все элементы этого множества уникальны. Нижеприведенный набор элементов не является допустимым множеством, так как в нем встречаются дублирующиеся элементы:
{А, В, С, А}
Примечание: Традиционным методом обозначения множеств является заключение их элементов в фигурные скобки. Эти фигурные скобки, разумеется, не имеют ничего общего с фигурными скобками, которые используются в программах на C++.
Порядок следования элементов множества значения не имеет. К примеру, следующие два множества являются эквивалентными:
{А, В, С} {С, В, А}
К множествам применим стандартный принцип исключения. Это означает, что конкретный элемент или является членом множества, или нет. Одновременное выполнение обоих этих условий невозможно.
Множество может быть пустым. Пустое множество также называется нулевым (null set).
Множество является подмножеством другого множества, если в этом другом множестве можно найти все элементы, имеющиеся в первом множестве. Например, множество
{А, В}
является подмножеством множества {А, В, С}
Соответственно, множество считается надмножеством другого множества, если оно содержит все элементы этого второго множества.
Каждый отдельный элемент является членом множества, если он содержится в числе элементов множества.Например, А является членом множества:
{А, В, С}

Операции над множествами
Ко множествам применим ряд операций. Тип множества, определенный в данной главе, реализует следующие операции:
Объединение
Пересечение
Разность
Симметричную разность
Ниже приведены объяснения каждой из этих операций. Будем предполагать, что существуют следующие множества:
Множество S1: {А, В, С}
Множество S2: {С, D, Е}
Результатом объединения двух множеств будет третье множество, в котором содержатся элементы обоих множеств-операндов S1 и S2:
{А, В, С, D, Е}
Обратите внимание на то, что элемент С входит в состав нового множества только один раз, так как множество не допускает дублирования элементов.
Пересечением двух множеств является третье, в состав которого войдут только те элементы, которые входят как в состав первого множества, так и в состав второго. Например, результатом пересечения множеств S1 и S2 будет множество, состоящее только из одного элемента:

{С}
Так как С является единственным элементом, входящим в состав как S 1, так и в состав S2, он и будет единственным членом множества, являющегося пересечением S1 и S2.
Разницей (иногда называемой разностью) двух множеств будет новое множество, содержащее элементы первого множества, не входящие в состав второго. Например, в результате выполнения операции S1—S2 будет получено следующее множество:
{А, В}
Поскольку С входит также в состав S2, этот элемент вычитается из состава S 1 и не входит в состав результирующего множества.
Симметричной разностью между двумя множествами будет новое множество, состоящее из элементов, которые входят в состав одного или другого множества (но не обоих). Например, симметричная разность множеств S1 и S2 представляет собой следующее множество:
{A,B,D,E}
Как вы можете видеть, С не входит в состав результирующего множества, так как является членом как S1, так и S2.

727. денис   (16.12.2004 20:47)
0  
очень полезный сайт!скачал парочку программ, щас буду их запускать
Ответ: Спасибо за отзыв.
Я только напомню, что на http://www.yourpascal.com имеется наш форум, где обсуждаются темы не только программирования.
Ждем

726. DiecorD   (16.12.2004 20:41)
0  
Отличный сайт!!! ПРосто класс...

725. Глюк   (16.12.2004 01:08)
0  
Спасибо! Только я в универ не пошел буду в четверг сдавать надеюсь.

724. InStall   (15.12.2004 23:53)
0  
Спасибо.Сайт хороший.


Имя *:
Email *:
WWW:
Код *:
Поиск
Друзья сайта
  • Создать сайт
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Все проекты компании
  • Copyright MyCorp © 2024
    Конструктор сайтов - uCoz