Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

16.02.2009, 13:18
|
|
Новичок
Регистрация: 10.01.2009
Сообщений: 3
Провел на форуме: 21694
Репутация:
1
|
|
Кто-нибудь, подскажите пожалуйста книги по Си/Си++, где бы описывалось применение системных функции Линукс.
Вот условие лабораторной:
Написать программу на си/си++, которая копирует файлы и считывает их атрибуты. Использовать системные функции ОС Линукс.
|
|
|

16.02.2009, 17:06
|
|
Новичок
Регистрация: 15.05.2008
Сообщений: 9
Провел на форуме: 29934
Репутация:
1
|
|
Парни помогите кто чем может. Мне нужно написать программку на C++
Собственно вот задание: Ввести с клавиатуры русское слово. Разбить его по слогам.
|
|
|

16.02.2009, 18:51
|
|
Участник форума
Регистрация: 10.02.2009
Сообщений: 203
Провел на форуме: 3226894
Репутация:
379
|
|
**
Помогите мне с лабой..надо написать программу на паскале.
Вообщем сама задача:
Из каждой очередной тройки букв удалить среднюю букву. Тип списка: циклический.
P.S заранее благодарен
**
|
|
|

16.02.2009, 19:29
|
|
Новичок
Регистрация: 10.06.2008
Сообщений: 3
Провел на форуме: 10293
Репутация:
0
|
|
Люди очень нужна ваша помощь, задачка на C++
Задание:
Дан массив A[n] , найти наименьшее число элементов которые нужно выкинуть из массива чтобы осталась возрастающая последовательность элементов.
неделю раздумий не к чему не привели  ( можно даже словами, как вообще организовать такой алгоритм... программу я сам смогу написать... очень прошу помощи ))
|
|
|

16.02.2009, 19:37
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Ну сам подумай... Какие признаки возрастающей последовательности? Каждый последующий элемент больше предыдущего... Т.е. те элементы, которые не удовлетворяют этому критерию и должны быть отброшены... Решение ещё не очевидно?
|
|
|

16.02.2009, 22:54
|
|
Новичок
Регистрация: 10.06.2008
Сообщений: 3
Провел на форуме: 10293
Репутация:
0
|
|
если б было всё так просто я бы не обращался, тут другое нужно найти МИНИМАЛЬНОЕ количество элементов которые нужно откинуть , покажу на примере:
последовательность : 1 7 1 8 3 5 9 8 0
решение должно быть : 1 1 3 5 9 (откинуто всего 4)
если по вашему то получиться отсеивание каждого элемента что больше предыдущего то есть останется 1 7 8 9 - а это не удовлетворяет условию...
а если ещё вначале самого массива будет максимальная величина в массиве то отброситься вообще всё что после неё, тоесть нужно найти оптимальный элемент с которого и начинать отсеивание... но и тут не так всё просто , простое отсеивание не подойдёт, так как нужно при каждом удовлетворении условия что след. элемент больше предыдущего запускать новый цикл который проверял бы элементы после этих двух...
я уже по не множку грешу в сторону рекурсий...
Последний раз редактировалось bigex; 16.02.2009 в 22:58..
|
|
|

17.02.2009, 23:05
|
|
Участник форума
Регистрация: 10.02.2009
Сообщений: 203
Провел на форуме: 3226894
Репутация:
379
|
|
вот помоги исправить задачу...нужно сделать так что бы из каждой очередной тройки букв удалить среднюю букву. Тип списка циклический.
А данная программа удаляет первую букву..а нужно что бы последнюю.
это паскаль
Uses Crt;
type
pSpisok = ^Slova;
Slova = Record
slv : string[10];
next : pSpisok
end;
var
Head1, Tail1, Head2, Tail2, Ptr1, Ptr2, Pysk1, Pysk2 : pSpisok;
St, Str : string[10];
F : text;
I, K, N : integer;
Name : string;
begin
ClrScr;
Writeln ('Fail dolgen sodergat slova, raspologennie postrochno');
Writeln ('Vvedite imya faila: ');
Readln (Name);
Assign (F, Name);
Reset (F);
Head1 := Nil;
Tail1 := Nil;
Head2 := Nil;
Tail2 := Nil;
ClrScr;
While not Eof(F) do
begin
Readln (F, St);
New (Ptr1);
Ptr1^.Slv :=St;
Ptr1^.Next := Nil;
If Tail1 <> Nil then
Tail1^.Next := Ptr1;
Tail1 := Ptr1;
If Head1 = Nil then
Head1 := Ptr1;
end;
Tail1^.Next := Head1;
Ptr1 := Head1;
Pysk1 := Head1;
repeat
Str := Ptr1^.Slv;
N := length(str) – 1 div 3;
If Str <> '' then K := 1;
for I := 1 to N do
begin
Delete (Str, K, 1);
K := K + 2;
end;
New (Ptr2);
Ptr2^.Slv := Str;
Ptr2^.Next := Nil;
If Tail2 <> Nil then
Tail2^.Next := Ptr2;
Tail2 := Ptr2;
If Head2 = Nil then
Head2 := Ptr2;
Pysk1 := Ptr1^.Next;
Ptr1 := Pysk1;
Until Pysk1 = Head1;
Tail2^.Next := Head2;
Pysk1 := Head1;
Pysk2 := Head2;
Ptr1 := Head1;
ptr2 := Head2;
repeat
Write (Ptr1^.Slv,' ');
Writeln (Ptr2^.Slv);
Pysk1 := Ptr1^.Next;
Pysk2 := Ptr2^.Next;
Ptr1 := Pysk1;
Ptr2 := Pysk2;
until Pysk2 = Head2;
repeat until KeyPressed;
End.
|
|
|

17.02.2009, 23:20
|
Регистрация: 29.05.2002
Сообщений: 1,793
Провел на форуме: 2050916
Репутация:
0
|
|
Сообщение от bigex
Задание:
Дан массив A[n] , найти наименьшее число элементов которые нужно выкинуть из массива чтобы осталась возрастающая последовательность элементов.
Код:
class Program
{
static void Main(string[] args)
{
int[] A = new int[] { 1, 7, 1, 8, 3, 5, 9, 8, 0 };
int count = calc(A);
Console.WriteLine(count);
Console.ReadLine();
}
//подсчет минимального числа исключений
private static int calc(int[] A)
{
//пербираем число отбрасываемых элементов
for (int i = 0; i < A.Length; i++)
{
if(Exclude(A, 0, i, new bool[A.Length]))
return i;
}
return A.Length;
}
//исключение одного элемента
private static bool Exclude(int[] A, int fromIndex, int excludeCount, bool[] excluded)
{
if(excludeCount==0)
return Check(A, excluded);
for (int i = fromIndex; i < A.Length; i++)
{
excluded[i] = true;
if(Exclude(A, i + 1, excludeCount - 1, excluded))
return true;
excluded[i] = false;
}
return false;
}
//проверка на возрастание
private static bool Check(int[] A, bool[] excluded)
{
int prev = int.MinValue;
for(int i=0;i<A.Length;i++)
if(!excluded[i])
{
if (A[i] <= prev)
return false;
prev = A[i];
}
return true;
}
}
Последний раз редактировалось Algol; 18.02.2009 в 00:25..
|
|
|

17.02.2009, 23:47
|
|
Познающий
Регистрация: 01.03.2008
Сообщений: 99
Провел на форуме: 613745
Репутация:
51
|
|
Код:
Uses Crt;
type
pSpisok = ^Slova;
Slova = Record
slv : string[10];
next : pSpisok
end;
var
Head1, Tail1, Head2, Tail2, Ptr1, Ptr2, Pysk1, Pysk2 : pSpisok;
St, Str : string[10];
F : text;
I, K, N : integer;
Name : string;
begin
ClrScr;
Writeln ('Fail dolgen sodergat slova, raspologennie postrochno');
Writeln ('Vvedite imya faila: ');
Readln (Name);
Assign (F, Name);
Reset (F);
Head1 := Nil;
Tail1 := Nil;
Head2 := Nil;
Tail2 := Nil;
ClrScr;
While not Eof(F) do
begin
Readln (F, St);
New (Ptr1);
Ptr1^.Slv :=St;
Ptr1^.Next := Nil;
If Tail1 <> Nil then
Tail1^.Next := Ptr1;
Tail1 := Ptr1;
If Head1 = Nil then
Head1 := Ptr1;
end;
Tail1^.Next := Head1;
Ptr1 := Head1;
Pysk1 := Head1;
repeat
Str := Ptr1^.Slv;
N := length(str) - 1 div 3;
If Str <> '' then K := 1;
for I := 1 to N do
begin
Delete (Str, K+1, 1);
K := K + 2;
end;
New (Ptr2);
Ptr2^.Slv := Str;
Ptr2^.Next := Nil;
If Tail2 <> Nil then
Tail2^.Next := Ptr2;
Tail2 := Ptr2;
If Head2 = Nil then
Head2 := Ptr2;
Pysk1 := Ptr1^.Next;
Ptr1 := Pysk1;
Until Pysk1 = Head1;
Tail2^.Next := Head2;
Pysk1 := Head1;
Pysk2 := Head2;
Ptr1 := Head1;
ptr2 := Head2;
repeat
Write (Ptr1^.Slv,' ');
Writeln (Ptr2^.Slv);
Pysk1 := Ptr1^.Next;
Pysk2 := Ptr2^.Next;
Ptr1 := Pysk1;
Ptr2 := Pysk2;
until Pysk2 = Head2;
repeat until KeyPressed;
End.
Вот, удаляет среднюю букву из каждой тройки, попробуй.
|
|
|

18.02.2009, 18:26
|
|
Участник форума
Регистрация: 10.02.2009
Сообщений: 203
Провел на форуме: 3226894
Репутация:
379
|
|
Сообщение от lll6
Код:
Uses Crt;
type
pSpisok = ^Slova;
Slova = Record
slv : string[10];
next : pSpisok
end;
var
Head1, Tail1, Head2, Tail2, Ptr1, Ptr2, Pysk1, Pysk2 : pSpisok;
St, Str : string[10];
F : text;
I, K, N : integer;
Name : string;
begin
ClrScr;
Writeln ('Fail dolgen sodergat slova, raspologennie postrochno');
Writeln ('Vvedite imya faila: ');
Readln (Name);
Assign (F, Name);
Reset (F);
Head1 := Nil;
Tail1 := Nil;
Head2 := Nil;
Tail2 := Nil;
ClrScr;
While not Eof(F) do
begin
Readln (F, St);
New (Ptr1);
Ptr1^.Slv :=St;
Ptr1^.Next := Nil;
If Tail1 <> Nil then
Tail1^.Next := Ptr1;
Tail1 := Ptr1;
If Head1 = Nil then
Head1 := Ptr1;
end;
Tail1^.Next := Head1;
Ptr1 := Head1;
Pysk1 := Head1;
repeat
Str := Ptr1^.Slv;
N := length(str) - 1 div 3;
If Str <> '' then K := 1;
for I := 1 to N do
begin
Delete (Str, K+1, 1);
K := K + 2;
end;
New (Ptr2);
Ptr2^.Slv := Str;
Ptr2^.Next := Nil;
If Tail2 <> Nil then
Tail2^.Next := Ptr2;
Tail2 := Ptr2;
If Head2 = Nil then
Head2 := Ptr2;
Pysk1 := Ptr1^.Next;
Ptr1 := Pysk1;
Until Pysk1 = Head1;
Tail2^.Next := Head2;
Pysk1 := Head1;
Pysk2 := Head2;
Ptr1 := Head1;
ptr2 := Head2;
repeat
Write (Ptr1^.Slv,' ');
Writeln (Ptr2^.Slv);
Pysk1 := Ptr1^.Next;
Pysk2 := Ptr2^.Next;
Ptr1 := Pysk1;
Ptr2 := Pysk2;
until Pysk2 = Head2;
repeat until KeyPressed;
End.
Вот, удаляет среднюю букву из каждой тройки, попробуй.
блин идиот...я искал эту строчку но не нашел..)))
думал еще как же программа удаляет без этого действия....тупица)))лови + помог найти!
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|