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

В списке целых чисел подсчитать количество переменных знаков. Вывести между какими элементами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ компилятор http://www.cyberforum.ru/cpp-beginners/thread363673.html
Здравствуйте, я написал код. а чтоб скомпилировать у меня нету компилятора, удалил по ошибке, а скачивать скорость не позволяет. Я обратился к вам чтоб попросить вас скомпилировать, и выслать скриншот полученного ответа. Заранее спасибо #ifdef TIME5_H #define TIME5_H class Time { public: Time (int=0, int=0, int=0); void setHour(int); void setMinute (int); void setSecond (int);
C++ Передача массива Функции, ошибка VS 2010 ругаеться ( Код из книги Дейтлов Что не так ? Как можно по другому подскажите пожалуйста #include <iostream> #include <iomanip> using namespace std; void modArr(int ,int); int main() { http://www.cyberforum.ru/cpp-beginners/thread363670.html
C++ Инкапсуляция, ссылка на функцию
Делаю задание по инкапсуляции, реализовать 3 вида списков в 1 программе, причем списки как подкл модули и снаружи только выбор типа при создании и функции работы. есть функция int (* GetData)(ListNode *); я хочу ее определить чтобы она делала (int)((ListOC *)(ListNode *a)->data) причем выбор типа списка контролируется кейсами при создании. Т.е. просто писать это в функции не могу, нужно чтобы...
объяснить функцию C++
Всем привет! Есть код: #include<conio.h> #include<iostream.h> class integer1 { int val; public: integer1(int v0 ) {val=v0;}
C++ помогите с решением зад. в с++ http://www.cyberforum.ru/cpp-beginners/thread363634.html
надо создать матрицу8*9,найти максимальные значения по строкам и столбцам,полученые значения упорядочить по убыванию.буду благодарен:)
C++ Добавление строк в масив строк Такой вот вопрос как в С++ сделать масив строк(строки статичной длинны), но чтобы можна было добавить ещё строки? подробнее

Показать сообщение отдельно
iWord
 Аватар для iWord
10 / 10 / 1
Регистрация: 21.12.2010
Сообщений: 109
09.10.2011, 18:40     В списке целых чисел подсчитать количество переменных знаков. Вывести между какими элементами
Вроде односвязный список организовал, но вдруг приспичило двусвязный сделать. Прошу подскажите с какой стороны зайти.
List.cpp
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/* 
 * File:   List.cpp
 * Author: iWord
 * 
 */
 
#include "List.h"
#include <locale>
#include <stdio.h>
#include <stdlib.h>
 
List::List() {
    setlocale(LC_ALL, "");
    printf("\033[44m \033[37m \033[1m Конструктор по умолчанию начал работу \033[m \033[m \033[m \n");
 
    list *tmp;
    tmp = new list;
 
    tmp -> info = 0;
    tmp -> next = NULL;
    start = tmp;
 
    printf("\033[44m \033[37m \033[1m Конструктор по умолчанию закончил работу \033[m \033[m \033[m \n");
}
 
List::List(int count, int method) {
 
    int item, item_1;
    char buffer[200];
 
    printf("\033[44m \033[37m \033[1m Конструктор с параметрами начал работу \033[m \033[m \033[m \n");
 
    list *tmp1, *tmp2;
    tmp1 = new list;
 
    tmp1 -> info = 0;
    tmp1 -> next = NULL;
    start = tmp1;
 
    time_t time_var;
    time_var = time(NULL);
    srandom(time(NULL));
 
    for (int i = 0; i < count; i++) {
        if (!method) {
            printf(" \033[36m \033[1m Введите элемент очереди \033[m \033[m \n");
            fgets(buffer, 120, stdin);
            item = atoi(buffer);
        } else {
            item = rand() % 101;
            item_1 = item;
            for (int i = 0; i < item_1; i++) {
                item = item * (-1);
            }
        }
        tmp1 = start;
        while (tmp1 -> next != NULL)
            tmp1 = tmp1 -> next;
        tmp2 = (list*) malloc(sizeof (list));
        tmp2 -> info = item;
        tmp2 -> next = NULL;
        tmp1 -> next = tmp2;       
        start -> info++;
    }
printf("\033[44m \033[37m \033[1m Конструктор с параметрами завершил работу \033[m \033[m \033[m \n");
}
 
List::~List() {
    printf("\033[44m \033[37m \033[1m Деструктор начал работу \033[m \033[m \033[m \n");
    
    while (!Empty()) {
        Delete(start -> info);
    }
        printf(" \033[31m \033[1m Память освобождена \033[m \033[m \n");
        printf("\033[44m \033[37m \033[1m Деструктор завершил работу \033[m \033[m \033[m \n");
}
 
int List::Empty(){
    if (start -> info) {
        return 0;
    }else{
        return 1;
    }
}
 
void List::Append(int item){
    list *tmp1,*tmp2;
    tmp1 = start;
    while (tmp1 -> next != NULL)
        tmp1 = tmp1 -> next;
    tmp2 = (list*)malloc(sizeof(list));
    tmp2 -> info = item;
    tmp2 -> next = NULL;
    tmp1 -> next = tmp2;
    start ->info++;
}
 
void List::Delete(int item){
    list *tmp1,*tmp2;
    tmp2 = start;
    for (int i = 1; i < item; i++)
      tmp2 = tmp2 -> next;
    tmp1 = tmp2 -> next;
    tmp2 -> next = tmp1 -> next;
    free(tmp1);
    start -> info--;
}
 
void List::Print(){
    list *tmp;
    if (!start -> info) {
        printf(" \033[36m \033[1m Очередь пуста \033[m \033[m \n");
    }else{
        tmp = start;
        tmp = tmp -> next;
        while (tmp != NULL) {
            printf("\033[36m \033[1m %d \033[m \033[m",tmp -> info);
            tmp = tmp -> next;
        }
    }
}
 
int List::Value(int number){
    list *tmp;
    tmp = start;
    for (int i = 0; i < number; i++)
        tmp = tmp -> next;
    return tmp -> info;
}
 
void List::Insert(int position,int item){
    list *tmp,*tmp1,*tmp2;
    tmp = addres(position - 1);
    tmp1 = tmp -> next;
    tmp2 = (list*)malloc(sizeof(list));
    tmp2 -> info = item;
    tmp -> next = tmp2;
    tmp2 -> next = tmp1;
    start -> info++;
}
List.h
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
/* 
 * File:   List.h
 * Author: iWord
 *
 */
 
#ifndef LIST_H
#define LIST_H
 
struct list{
    int info;
    struct list *next;
    struct list *prev;
};
 
class List {
protected:
    struct list *start;
    int buffer;
public:
    
    /**
     * @constructor     Конструктор по умолчанию
     */
    
    List();
    
    /**
     * @constructor     Конструктор с параметрами
     * @param count     Количество элементов
     * @param method    Метод заполнения
     */
    
    List(int count, int method);
    
    /**
     * @destructor      Деструктор
     */
    
    virtual ~List();
    
    /**
     * @method          Проверка на заполненность списка
     */
    
    int Empty();
    
    /**
     * @method          Добавление в конец списка
     */
    
    void Append(int item);
    
    /**
     * @method          Удаление элемента
     */
    
    void Delete(int item);
    
    /**
     * @method          Печать списка
     */
    
    void Print();
    
    /**
     * @method          Возвращение значения элемента списка
     * @return          Значение элемента
     */
    
    int Value(int number);
    
    /**
     * @method          Вставка элемента списка
     */
    
    void Insert(int position,int item);
    
    /**
     * 
     * @method Печать отрезка  
     */
    
    void Negative_pos();
    
    list *addres(int number){
        list *tmp;
        tmp = start;
        for (int i = 0; i < number; i++)
            tmp = tmp -> next;
        return tmp;
    };
 
};
 
#endif  /* LIST_H */
main.cpp
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
/* 
 * File:   main.cpp
 * Author: iWord
 *
 */
 
#include <cstdlib>
#include <stdio.h>
#include <stdlib.h>
#include <locale>
#include "List.h"
#include <malloc.h>
#include <time.h>
#include <string.h>
 
int main(int argc, char** argv) {
    
    setlocale(LC_ALL,"");
    
    int count,method,i,methodx;
    int params[10];
    
    char buffer[500];
    char temp[500];
    char text[10][500];
    char *slovar[] = {"count","method","zadanie","author"};
    
    FILE *config,*log;
    time_t times;
    
    if((log = fopen("lab1.log","a")) == NULL){
        printf("\033[31m Ошибка открытия файла логирования!\033[m \n");
        printf("\033[1m Нажмите Enter. \033[m \n");
        getchar();
        
        if((log = fopen("lab1.log","wt")) == NULL){
            printf("\033[31m Ошибка открытия файла логирования!\033[m \n");
            printf("\033[1m Нажмите Enter. \033[m");
            getchar();
            exit(0);
        }else{
            printf("\033[1m Файл протокола открыт успешно. \033[m \n");
        }
    }else{
         printf("\033[1m Файл протокола открыт на добавление данных. \033[m \n");
    }
    
    times = time(NULL);
    fprintf(log,"\n%s : запуск программы \n",ctime(&times));
    
    if((config=fopen("configure.config","r")) == NULL){
        times = time(NULL);
        fprintf(log,"%s : ошибка открытия конфигурационного файла! \n",ctime(&times));
        printf("\033[31m \033[1m Ошибка открытия конфигурационного файла! \033[m \033[m \n");
        getchar();
        exit(0);
    }
    
fgets(temp,5,config);
        if (strlen(temp)==5)
            {
 
            if (strstr(temp,"Laba1")==0) 
            {
                fprintf(log,"Не верный конфигурационный файл!\n");
                puts("Не верный конфигурационный файл!");
                printf(" ERROR = %s\n", temp);
                getchar();
        }
            }
 printf("Конфигурационный файл верен.\n");
 
 rewind(config);
 fgets(buffer,200,config);
 i = 0;
 while (!feof(config)){
     fgets(buffer,300,config);
     if(buffer[0]!='#'){
         for (int i = 0; i < 4; i++) {
             if(strstr(buffer,slovar[i]) != NULL){
                 strcpy(text[i],strchr(buffer,'='));
             }
            }
     }
    }
 
 for (int i = 1; i < strlen(text[0]); i++) 
     buffer[i-1] = text[0][i];
 params[1] = atoi(buffer);
 
 for (int i = 1; i < strlen(text[1]); i++) 
     buffer[i-1] = text[1][i];
 params[2] = atoi(buffer);
 
 for(i=1;i<=strlen(text[2]);i++)
     buffer[i-1]=text[2][i];
        
 for (i=0;i<=strlen(buffer);i++) 
        text[2][i]=buffer[i];
 
  for(i=1;i<=strlen(text[3]);i++)
     buffer[i-1]=text[3][i];
        
 for (i=0;i<=strlen(buffer);i++) 
        text[3][i]=buffer[i];
 
 count = params[1];
 method = params[2];
 
 printf("\n \033[36m \033[1m Лабораторная работа №1 \n \033[m");
 printf("\033[1mЗадание: %s \033[m ",text[2]);
 fprintf(log,"%s :%s",ctime(&times),text[2]);
 printf("\033[1mВыполнил: %s \033[m ",text[3]);
 fprintf(log,"%s :выполнил %s",ctime(&times),text[3]);
 printf("\n\033[36m\033[1m____________________________________________________ \n\033[m");
 printf("Количество элементов в списке: %d",count);
 fprintf(log,"%s :количество элементов в списке - %d",ctime(&times),count);
 
 if(method != 0){
     puts("\nВыбран автоматический режим.");
     fprintf(log,"%s :выбран автоматический режим.",ctime(&times));
     methodx = 1;
 }else{
     puts("\nВыбран ручной режим.");
     fprintf(log,"%s :выбран ручной режим.",ctime(&times));
     methodx = 0;
 }
 
 if(count <0 || count > 20){
     printf("\033[31m\033[1mВы указали слишком большое количество элементов очереди: %d.\nИнтервал значений от 0 < x < 20. По умолчанию будет устаовлено значение 5.\033[m",count);
     fprintf(log,"%s :Вы указали слишком большое количество элементов очереди: %d.\nИнтервал значений от 0 < x < 20. По умолчанию будет устаовлено значение 5",ctime(&times),count);
 }
 
 List mylist(count,method);
 mylist.Insert(2,10);
 mylist.Print();
 
 
 
 
    
 
 
 
    printf("\n____________________________________________________ \n \033[1m Работа программы успешно завершена \033[m \n");
    getchar();
    return 0;
}
configure.config
C++
1
2
3
4
5
6
7
8
9
Laba1
#Количество элементов очереди n>0&n<20
count=10
#Способ заполнения 0-ручное заполнение, другое значение - автозаполнение
method=1
#Формулировка задания
zadanie=В списке целых чисел подсчитать кол-во переменных знаков. Вывести между какими элементами
#Автор
author=Мухамедгалиев Ринат ИВТ-21
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru