С Новым годом! Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/63: Рейтинг темы: голосов - 63, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 08.12.2008
Сообщений: 26

Блок схема пожалуйста (Определение названия месяца по номеру)

14.12.2008, 15:13. Показов 11747. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите с блок схемой для этого задания:
Определение названия месяца по номеру
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.12.2008, 15:13
Ответы с готовыми решениями:

Программа вывода названия месяца по номеру с использованием перечислений
Пользователь вводит число от 1 до 12. Программа должна вывести название месяца. Использовать перечисление в структуре. Помогите...

Определение квартала года по порядковому номеру месяца
Написать программу определения квартала года по порядковому номеру месяца.

Пользовательская функция: определение по номеру месяца, к какому кварталу он принадлежит
Помогите создать пользовательскую функцию определения по номеру месяца к какому кварталу он принадлежит. Для демонстрации работы функции...

10
32 / 32 / 4
Регистрация: 29.12.2008
Сообщений: 75
30.12.2008, 14:22
Не вижу абсолютно никакой проблемы. Читай тут.
Миниатюры
Блок схема пожалуйста (Определение названия месяца по номеру)  
1
 Аватар для RockeT
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 11
30.12.2008, 22:38
parni est6 kto mozet ob6aisnit6 i pomoch sostavit6 zadachu voobshe ne poluchaetsia.
Даны натуральное число n, определить символы s1,....,sn.Определить число вхожденний в последовательность s1,....,sn группы букв:
aba
0
32 / 32 / 4
Регистрация: 29.12.2008
Сообщений: 75
31.12.2008, 10:27
Функция на Borland С++ Builder 6.0.

Для успешной работы программы помести на форму два компонента TLabel *Label1 и Label2, а также кнопку TButton *Button1.
В обработчик события щелчка по кнопке вставь следующий код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    
    const int n = 10;
 
    char s[n];
 
    randomize();
 
      /* Инициализируем массив s (начало) ******************/
    for(int x = 0; x<10;x++){
        int i = rand() % 3;
        switch(i){
            case 0: s[x]='a';break;
            case 1: s[x]='b'; break;
            case 2: s[x]= 'c';break;
        }
    }
    /* Инициализируем массив s (конец) ******************/
 
    int num=0;  //количество вхождений
 
    for (int z = 0;z<n-3;z++){
        if((s[z]=='a')&& (s[z+1]=='b')&&(s[z+2]=='a'))
            num++;
    }
 
    Label1->Caption = s;   // последовательность символов
    Label2->Caption = num; // количество вхождений
После этого в Label1 получишь последовательность символов s, а в Label2 - искомое количество вхождений.
0
 Аватар для vitalikk
6 / 6 / 0
Регистрация: 11.01.2009
Сообщений: 14
12.01.2009, 10:30
А не проще это сделать с массивом и получится что
Month[1] = "Январь"
Month[2] = "Февраль"
Month[3] = "Март"
Month[4] = "Апрель"
...........................
Month[12] = "Декабрь"
Еще сделать защиту от дураков
если ввели 0 то считать это 1
брать число и делить на двенадцать
если нет остатка значить 12
если есть остаток то его и выводить в качестве
месяца
к примеру ввели 14 остаток 2 это февраль
0
32 / 32 / 4
Регистрация: 29.12.2008
Сообщений: 75
12.01.2009, 19:12
По поводу использования массива согласен. Однако, что касается защиты от дурака, я думаю, при решении именно данной задачи она лишняя. Теоретически, пользователь может ввести не только число, но и символ, или же число, но отрицательное или дробное. Тогда предложенный вами алгоритм не сработает.

Согласен. В предложенной мной блок-схеме тоже не учтены все подобные случаи, но я думаю, что здесь все равно лучше просто вывести сообщения об ошибке и не надо ни с чем мудрить когда стоит настолько конкретная задача.
0
 Аватар для vitalikk
6 / 6 / 0
Регистрация: 11.01.2009
Сообщений: 14
12.01.2009, 23:24
А если использовать маску ввода
водить тока цифери
0
32 / 32 / 4
Регистрация: 29.12.2008
Сообщений: 75
13.01.2009, 19:22
Можно.

Но любой алгоритм должен ориентироваться на конкретную задачу.

Например, пусть вы пишете какую-то обучающую программу, скажем, для дошколят (хотите обучить их названиям месяцев). Сейчас это модно и практикуется достаточно широко. Попробуйте им объяснить, почему вы вводите 14, а результат воспринимается как 2 и в результате выводится "февраль". У них возникнет ощущение, что в году не 12 месяцев, а больше. Кроме того, придется объяснять, что такое остаток и как он находится. Больше того, остаток, как известно, может быть равен нулю. Что такое нулевой месяц? Нечто между декабрем и январем?

Я думаю, в данном случае целессобразно вывести сообщение наподобие такого:
"В году всего 12 месяцев. Введенное Вами число не соответствует ниодному из существующих месяцев. Введите другое число."
(конечно формулировка для дошколят неподходящая, но я думаю, вы понимаете, что я имею ввиду).

Однако, с другой стороны, мне приходилось решать задачи (например определения дня недели по имеющейся дате), где предложенный вами принцип остатка оказывается весьма полезным.

Теперь обращаю внимание, что в данной конкретной задаче нужно по известному номеру месяца определить его название. Т.е. номер месяца нам уже дан. Мы можем вообще его считать из бинарного файла и преобразовать прочитаное двоичное число в десятичное (только брать надо не байт целиком, а сначала прочитать первые три бита, к результату прибавить 1, прочитать следующие два бита, прибавить полученное число к предыдущему результату, далее прочитать следующий бит и полученное число снова прибавить к результату). Тогда половина из того, о чем мы с вами беседуем, просто теряет смысл. Но тут же возникнет вопрос о существовании файла и о его размере (если размер файла равен нулю, то читать там нечего). Вариантов, если поразмыслить, может быть несколько. А если еще начнем ориентироваться на конкретный язык (не нарушая при этом свойства массовости алгоритма) то в Borland С++ Builder есть инструмент TrackBar, используя который при решении данной задачи вообще можно исключить все возможные ошибки ввода. Делается это примерно так (номер месяца задается положением ползунка; для наглядности приведены 4 элемента TrackBar, хотя для решения задачи достаточно одного). Также программист может жестко "забить" нужный ему номер месяца в программе а не спрашивать его у пользователя (тогда и мою блок-схему нужно перерисовать).

Т.е. вариантов уйма. Поэтому, т.к., по условию задачи, номер месяца предполагается известным (но не известен способ получения этого номера), не стоит особо мудрить. Любой алгоритм априори предполагает четкую формулировку задачи. На данный момент она не совсем четкая. Поэтому и сам алгоритм вызывает такие споры.

Однако вы меня убедили. Вот новый вариант блок-схемы. Тем не менее повторю, что ваш вариант с массивом мне нравится.
Миниатюры
Блок схема пожалуйста (Определение названия месяца по номеру)   Блок схема пожалуйста (Определение названия месяца по номеру)  
0
 Аватар для vitalikk
6 / 6 / 0
Регистрация: 11.01.2009
Сообщений: 14
13.01.2009, 20:51
В таком случае нужно сделать выпадающий список где будут значения от 1 до 12
и значить пользователь даже если за хочет не выберет из списка другое число
из- за его отсуствия.
0
32 / 32 / 4
Регистрация: 29.12.2008
Сообщений: 75
14.01.2009, 20:02
Все зависит от конкретной задачи. ТЧК.

Добавлено через 1 час 48 минут 11 секунд
Кстати, предложенный вами список и предложенный мной TrackBar в данном случае эквивалентны.
0
 Аватар для vitalikk
6 / 6 / 0
Регистрация: 11.01.2009
Сообщений: 14
14.01.2009, 23:08
На 100% согласен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.01.2009, 23:08
Помогаю со студенческими работами здесь

По порядковому номеру месяца вывести его название: составить блок схему
составить блок схему.Вот текст программы нужна блок схема: Составить программу, которая в зависимости от порядкового номера месяца (1, 2,...

Блок-схема. По номеру месца определить пору года
program month; var m: integer; begin write ('Введите число:'); readln (m); case m of 12,1..2: writeln ('Это месяц зимы'); ...

Программа, которая по номеру месяца выдает название следующего за ним месяца
Нужно написать программу, которая по номеру месяца выдает название следующего за ним месяца, был бы очень признателен за помощь.

По введенному номеру месяца выделить в списке название следующего за ним месяца
Помогите пожалуйста, Написать программу, которая по введенному номеру месяца выделяет в списке название следующего за ним месяца.

Написать программу, которая по номеру месяца выдает название следующего за ним месяца
помогите пожалуйста написать программу, которая по номеру месяца выдает на¬звание следующего за ним месяца (при m=1 получаем февраль, при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru