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

Составить блок-схему для программы - C++

Восстановить пароль Регистрация
 
Penya
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 2
18.06.2014, 14:24     Составить блок-схему для программы #1
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <iostream.h>
#include <locale.h>
 
 
#define MAX(a, b) (a) > (b) ? (a) : (b)
#define MIN(a, b) (a) < (b) ? (a) : (b)
 
int ask_error(const char * msg){
char answ;
setlocale(LC_ALL,"Russian");
printf("%s\nПродолжить? (y/n) > ", msg);
if ( scanf("%c%*c", &answ) != 1 ){
perror("scanf");
return 1;
}
return ( answ != 'y' && answ != 'Y' );
}
 
int check_date(struct tm * d){
if ( d->tm_mday < 1 || d->tm_mday > 31 )
return 1;
d->tm_mon -= 1;
if ( d->tm_mon < 0 || d->tm_mon > 11 )
return 1;
if ( d->tm_year < 0 )
return 1;
if ( d->tm_year < 37 )
d->tm_year += 2000;
else if ( d->tm_year < 100 )
d->tm_year += 1900;
if ( d->tm_year > 2036 || d->tm_year < 1970 )
return 1;
d->tm_year -= 1900;
d->tm_min = 1;
return 0;
}
 
int main(void){
struct tm date1, date2;
time_t time1, time2;
setlocale(LC_ALL,"Russian");
while ( 1 ){
memset(&date1, 0, sizeof(struct tm));
memset(&date2, 0, sizeof(struct tm));
 
printf("\nНачальная дата: ");
if ( scanf("%d%*c%d%*c%d%*c", &date1.tm_mday, &date1.tm_mon, &date1.tm_year) != 3 ){
if ( ask_error("Неверный ввод!") )
break;
continue;
}
if ( check_date(&date1) ){
if ( ask_error("Неверный Формат даты!") )
break;
continue;
}
 
printf("Вторая дата: ");
if ( scanf("%d%*c%d%*c%d%*c", &date2.tm_mday, &date2.tm_mon, &date2.tm_year) != 3 ){
if ( ask_error("Неверный ввод!") )
break;
continue;
}
if ( check_date(&date2) ){
if ( ask_error("Неверный Формат даты!") )
break;
continue;
}
 
if ( ( time1 = mktime(&date1) ) == -1 ){
perror("first date mktime");
exit(1);
}
if ( ( time2 = mktime(&date2) ) == -1 ){
perror("second date mktime");
exit(1);
}
 
printf("Дней между: %d\n", (int)(difftime(MAX(time1, time2), MIN(time1, time2)) / 60.0 / 60.0 / 24.0));
 
if ( ask_error("") )
break;
}
 
exit(0);
}
        printf("Days between: %d\n", (int)(difftime(MAX(time1, time2), MIN(time1, time2)) / 60.0 / 60.0 / 24.0));
        
        if ( ask_error("") )
            break;
    }
    
    exit(0);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
18.06.2014, 15:16     Составить блок-схему для программы #2
А зачем тебе блок-схема? Я считаю блок-схему пережитком времён, когда программы пестрели переходами goto и для того, чтоб в них разобраться, людям приходилось рисовать стрелочки на бумаге... Устаревшая тема, короче!
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
18.06.2014, 15:19     Составить блок-схему для программы #3
Kuzia domovenok, полностью с тобой согласен
но думаю что ТС нужно это сделать для универа, а там,имхо, еще остались преподы которые это требуют
Penya
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 2
18.06.2014, 21:24  [ТС]     Составить блок-схему для программы #4
И правда в универе требуют)
Yandex
Объявления
18.06.2014, 21:24     Составить блок-схему для программы
Ответ Создать тему
Опции темы

Текущее время: 02:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru