Форум программистов, компьютерный форум CyberForum.ru

Указатели. Динамическая память. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Классы!!! http://www.cyberforum.ru/cpp-beginners/thread145553.html
Помогите преобразовать листинг, чтобы получилась нормальная работающая программа!!! По заданию нужно каким-то образом циклы оформить в функцию внутри класса и для каждого класса создать функцию которая описана в main: Class mlec {public: char tip ; char klass ; mlec (char t, cgar k) { for (int i=0; j<9; j++) tip=t for (i=0; i<15; i++)
C++ Указатели Нужно очень срочно. 1. Дано целое n>2. Напечатать все простые числа из диапазона ; 2. Заданы 3 натуральных числа а,b,c которые обозначают число, месяц, год. Найти порядковый номер даты начиная отсчет с начала года; 3. Дано натуральное число n. Определить сумму цифр в первой половине числа. Пример: n=12345678. Сумма 1+2+3+4=10 http://www.cyberforum.ru/cpp-beginners/thread145541.html
C++ Упорядочить строки матрицы
Задача - дана вещественная квадратная матрица А порядка н. Упорядочить строки матрицы по неубыванию максимальных элементов строк проблемы с С++ , не могу найти ошибку . Программа не правильно сортирует матрицу . Помогите найти и исправить ошибку , заранее спасибо #include<stdio.h> #include<stdlib.h> #include<ctime> #define MAXN 20 #define MAX 100 #include<conio.h>
Очень нужно C++
как сделать чтоб человек вводил текст на консоль а прога записывала это в файл?
C++ Структура http://www.cyberforum.ru/cpp-beginners/thread145528.html
Сделайте, что нибудь по структуре в си++. Нужно очень срочно...
C++ Рекурсия Сделайте одну програмку используя рекурсию. Очень нужно... Срочно. 1. Реализовать поиск НОД; 2. Возвести число в целую степень; 3. Создать программу для перевода чисел из 10-ной в 2-ую систему счисления. Можно на builder или на си++ подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2798 / 1574 / 246
Регистрация: 03.05.2010
Сообщений: 3,651
15.06.2010, 14:45     Указатели. Динамическая память.
Задача №2:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
//Заданы 3 натуральных числа а,b,c которые обозначают число, месяц, год. 
//Найти порядковый номер даты начиная отсчет с начала года;
#include <iostream>
#include <map>
 
const int god_min = 1583;//Первый год, целиком считаемый по григорианскому календарю.    
 
//Високосные годы в григорианском календаре, действующем с 4 октября 1582 года, следующие:
//    * Каждый год, номер которого кратен 4 — високосный.
//    * Однако, каждый год кратный 100 — не високосный.
//    * Однако, каждый год кратный 400 все же високосный — 1600, 2000 и т.д.
bool god_is_visok(int god)
{
    return (god % 400 == 0) || (god % 4 == 0) && !(god % 100 == 0);
}
 
int  get_chislo_v_mes_max
    (
        int god, 
        int mes
    )
{
    typedef std::map<int, int> T_chislo_v_mes_max_nevisok;
    T_chislo_v_mes_max_nevisok  chislo_v_mes_max_nevisok;
    chislo_v_mes_max_nevisok[1]  = 31;
    chislo_v_mes_max_nevisok[2]  = 28;
    chislo_v_mes_max_nevisok[3]  = 31;
    chislo_v_mes_max_nevisok[4]  = 30;
    chislo_v_mes_max_nevisok[5]  = 31;
    chislo_v_mes_max_nevisok[6]  = 30;
    chislo_v_mes_max_nevisok[7]  = 31;
    chislo_v_mes_max_nevisok[8]  = 31;
    chislo_v_mes_max_nevisok[9]  = 30;
    chislo_v_mes_max_nevisok[10] = 31;
    chislo_v_mes_max_nevisok[11] = 30;
    chislo_v_mes_max_nevisok[12] = 31;
 
    int res = chislo_v_mes_max_nevisok[mes];
    if(mes == 2 && god_is_visok(god)) ++res;
    return res;
}
 
bool  den_v_godu_count
    (
        int  god,
        int  mes, 
        int  chislo,
        int& count
    )
{    
    if(god < god_min)
    {
        std::cout << "Некорректрое значение года "
                  << god
                  << "."
                  << std::endl;
        return false;
    }    
 
    const int mes_min = 1;
    const int mes_max = 12;
 
    if(mes < mes_min || mes_max < mes)
    {
        std::cout << "Некорректрое значение месяца "
                  << mes
                  << "."
                  << std::endl;
        return false;    
    }
 
    const int chislo_min = 1;
    if(chislo < chislo_min || get_chislo_v_mes_max(god, mes) < chislo)
    {
        std::cout << "Некорректрое значение числа в месяце "
                  << chislo
                  << "."
                  << std::endl;
        return false;   
    }
        
    count = 0;
    for(int mes_ind = mes_min; mes_ind < mes; ++mes_ind)
    {
        count += get_chislo_v_mes_max(god, mes_ind);
    }
    count += chislo;
    return true;
}
 
int main()
{
    std::locale::global(std::locale(""));
    for(;;)
    {
        std::cout << std::endl
                  << std::endl
                  << "Число в месяце: ";
        int chislo;
        std::cin >> chislo;
        std::cout << "Номер месяца (январь -> 1, февраль -> 2 и т.д.): ";
        int mes;
        std::cin >> mes;
        std::cout << "Год >= "
                  << god_min
                  << ": ";
        int god;
        std::cin >> god;
        int den_v_g_count;
        if(den_v_godu_count(god, mes, chislo, den_v_g_count))
        {
            std::cout << "Порядковый номер заданной даты с начала года равен "
                      << den_v_g_count
                      << ".";
        }
    }
    return 0;
}
 
Текущее время: 09:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru