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

RFpro.ru: Алгоритмы и теория программирования


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

Лучшие эксперты в разделе

Алексеев Владимир Николаевич
Статус: Мастер-Эксперт
Рейтинг: 370
∙ повысить рейтинг »
CradleA
Статус: Мастер-Эксперт
Рейтинг: 220
∙ повысить рейтинг »
solowey
Статус: Профессор
Рейтинг: 21
∙ повысить рейтинг »

Алгоритмы и теория программирования

Номер выпуска:240
Дата выхода:20.05.2021, 16:15
Администратор рассылки:Зенченко Константин Николаевич (Старший модератор)
Подписчиков / экспертов:3 / 16
Вопросов / ответов:3 / 8

Консультация # 144942: Вопрос Здравствуйте уважаемые эксперты! У меня два вопроса: 1)Если флешка отформатирована под FAT, можно ее использовать вместо дискеты? 2)Подскажите пожалуйста, какая разница между макрокомандами и подпрограммами, для чего нужны макрокоманды? Проще использовать подпрограммы. ...
Консультация # 180896: Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос:Дан текстовый файл.Вывести на экран строки файла в алфавитном порядке. Программа должна производить проверку особых ситуаций при операциях ввода-вывода ...
Консультация # 42801: Здравствуйте, уважаемые эксперты. Есть задача с рекурсией "вывести целое положительное число используя print(n), где n=0..9". Голова уже кипит. Не подскажите ли вы, как организовать эту рекурсивную функцию. ...

Консультация # 144942:

Вопрос
Здравствуйте уважаемые эксперты!
У меня два вопроса:
1)Если флешка отформатирована под FAT, можно ее использовать вместо дискеты?
2)Подскажите пожалуйста, какая разница между макрокомандами и подпрограммами, для чего нужны макрокоманды? Проще использовать подпрограммы.

Дата отправки: 24.09.2008, 23:35
Вопрос задал: Олег Миколайович
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Sk0rp:

Здравствуйте, Олег Миколайович!
1. Нет, от формата она дискетой не станет, это все равно переносной диск.
2. Макрокомады подставляются непосредственно в текст, т.е. сколько раз её напишете столько копий кода и получите, а подпрограмма в памяти одна и вызывается из необходимых мест. Иногда когда накладные расходы по времени на вызов сравнимы со временем работы самого кода, лучше использовать макрокоманды.

Консультировал: Sk0rp
Дата отправки: 24.09.2008, 23:48
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует AlexanderZh:

Здравствуйте, Олег Миколайович!
1. Можно, если вы имеете в виду загрузку компьютера (должно поддерживаться BIOS)!!! Читайте на выбор.
На второй вопрос вам ответили верно.

Консультировал: AlexanderZh
Дата отправки: 25.09.2008, 00:44
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 180896:

Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос:Дан текстовый файл.Вывести на экран строки файла в алфавитном порядке. Программа должна производить проверку особых ситуаций при операциях ввода-вывода

Дата отправки: 23.11.2010, 01:34
Вопрос задал: Maverick (Посетитель)
Всего ответов: 2
Страница онлайн-консультации »


Консультирует vladisslav:

Здравствуйте, Magma!
Такой вариант. На C. Передавать 1 аргумент - исследуемый файл.
Используется список сортировки (точнее таблицы).
Используется b+ дерево. (Быстро и при большом количестве одинаковых слов занимает меньше памяти.)
Под словами подразумевается то, что читает функция scanf("%s",word).
Комментарии на английском (не люблю переключать раскладку).

Приложение:

Консультировал: vladisslav
Дата отправки: 24.11.2010, 18:44
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует lamed (Академик):

Здравствуйте, Magma! G++/Code::Blocks. Файл читается в массив строк, массив сортируется "пузырьком", печатается на экран.

Код
#include <stdio.h>
#include <string.h>

int main(void)
{
    enum {MAX_LINE_SIZE=100, MAX_VEC_SIZE=1000};
    char line[MAX_LINE_SIZE], tmp[MAX_LINE_SIZE];
    char v[MAX_VEC_SIZE][MAX_LINE_SIZE];
    char fname[40];
    int i, j, vec_size;
    FILE *f;

    printf("Файл " );
    scanf("%s", &fname);

    // Проверка открытия
    if ((f = fopen(fname, "r")) == NULL)
    {
        printf("Файл не найден\n");
        system("pause");
        return 1;
    }

    // Заполняем массив строк
    vec_size=0;
    while( fgets(line, MAX_LINE_SIZE, f) != NULL )
    {
        strcpy(v[vec_size++], line);
    }

    // Проверка закрытия
    if (fclose(f)!=0)
    {
        printf("Ошибка закрытия файла\n");
        system("pause");
        return 1;
    }

    // Сортируем массив строк
    // Правильней было бы сортировать массив указателей
    for (i=0; i<vec_size-1; i++)
        for (j=vec_size-1; j>i; j--)
            if (strcmp(v[j], v[j-1])<0)
            {
                strcpy(tmp, v[j]);
                strcpy(v[j], v[j-1]);
                strcpy(v[j-1], tmp);
            }

    printf("\nПосле сортировки\n");
    for (i=0; i<vec_size; i++)
        printf(v[i]);

    system("pause");
    return 0;
}

Исходный файл.
Код
Richard Bach
Jonathan Livingston Seagull

To the real Jonathan Seagull,
who lives within us all.

Part One

It was morning, and the new sun sparkled gold across the ripples of a
gentle sea. A mile from shore a fishing boat chummed the water. and the
word for Breakfast Flock flashed through the air, till a crowd of a
thousand seagulls came to dodge and fight for bits of food. It was another
busy day beginning.
But way off alone, out by himself beyond boat and shore, Jonathan
Livingston Seagull was practicing. A hundred feet in the sky he lowered
his webbed feet, lifted his beak, and strained to hold a painful hard
twisting curve through his wings. The curve meant that he would fly
slowly, and now he slowed until the wind was a whisper in his face, until
the ocean stood still beneath him. He narrowed his eyes in fierce
concentration, held his breath, forced one... single... more... inch...
of... curve... Then his featliers ruffled, he stalled and fell.
Seagulls, as you know, never falter, never stall. To stall in the air
is for them disgrace and it is dishonor.
But Jonathan Livingston Seagull, unashamed, stretching his wings
again in that trembling hard curve - slowing, slowing, and stalling once
more - was no ordinary bird.
Most gulls don't bother to learn more than the simplest facts of
flight - how to get from shore to food and back again. For most gulls, it
is not flying that matters, but eating. For this gull, though, it was not
eating that mattered, but flight. More than anything else. Jonathan
Livingston Seagull loved to fly.


Пример работы
Код
Файл test.txt
После сортировки



But Jonathan Livingston Seagull, unashamed, stretching his wings
But way off alone, out by himself beyond boat and shore, Jonathan
It was morning, and the new sun sparkled gold across the ripples of a
Jonathan Livingston Seagull
Livingston Seagull loved to fly.
Livingston Seagull was practicing. A hundred feet in the sky he lowered
Most gulls don't bother to learn more than the simplest facts of
Part One
Richard Bach
Seagulls, as you know, never falter, never stall. To stall in the air
To the real Jonathan Seagull,
again in that trembling hard curve - slowing, slowing, and stalling once
busy day beginning.
concentration, held his breath, forced one... single... more... inch...
eating that mattered, but flight. More than anything else. Jonathan
flight - how to get from shore to food and back again. For most gulls, it
gentle sea. A mile from shore a fishing boat chummed the water. and the
his webbed feet, lifted his beak, and strained to hold a painful hard
is for them disgrace and it is dishonor.
is not flying that matters, but eating. For this gull, though, it was not
more - was no ordinary bird.
of... curve... Then his featliers ruffled, he stalled and fell.
slowly, and now he slowed until the wind was a whisper in his face, until
the ocean stood still beneath him. He narrowed his eyes in fierce
thousand seagulls came to dodge and fight for bits of food. It was another
twisting curve through his wings. The curve meant that he would fly
who lives within us all.
word for Breakfast Flock flashed through the air, till a crowd of a

Если требуются разъяснения, пожалуйста, вопросы в мини-форум.

Консультировал: lamed (Академик)
Дата отправки: 25.11.2010, 21:03
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 42801:

Здравствуйте, уважаемые эксперты. Есть задача с рекурсией "вывести целое положительное число используя print(n), где n=0..9". Голова уже кипит. Не подскажите ли вы, как организовать эту рекурсивную функцию.

Дата отправки: 12.05.2006, 07:44
Вопрос задал: Демченко Артем
Всего ответов: 4
Страница онлайн-консультации »


Консультирует Kazakh:

Здравствуйте, Демченко Артем!

В приложении пример на Паскале.
Печатаются от 9 до 0.
Небольшие изменеия и она будет печатать с 0 до 9.

Приложение:

Консультировал: Kazakh
Дата отправки: 12.05.2006, 08:13
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Ayl:

Здравствуйте, Демченко Артем!

Вообще-то это делается следующим алгоритмом:

Procedure PrintNum (n : LongInt);
begin
if n < 0 then exit;

if n > 10 then PrintNum (n div 10);

print (n mod 10);
end;

Консультировал: Ayl
Дата отправки: 12.05.2006, 11:59
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Jeka911:

Здравствуйте, Демченко Артем!

Если я правильно понял, выводим любое положительное число, но по цифрам, функцией someprint(n);, где n=(0,9);

func (int n)
{
int nn = n%10; //(mod);
int xn = n/10; //(div);
if (n>=10) func(xn);
someprint(nn);
}

Так как вызов рекурсивный функции до вывода цифры, то знаки будут выводиться от старших к младшим, вроде так.

Консультировал: Jeka911
Дата отправки: 12.05.2006, 14:03
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Селиванов Александр Владимиров:

Здравствуйте, Демченко Артем!
Не знаю, на каком языке вам нужно, поэтому напишу на абстрактном:

вывод(целое Х)
{
если(Х = 0)
выход;
n = остаток_от_деления Х на 10;
Х = целая_часть_от_деления Х на 10;
вывод(Х);
print(n);
}

Консультировал: Селиванов Александр Владимиров
Дата отправки: 13.05.2006, 22:49
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное