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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DarkMistik
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 10
#1

нужно составить программу. - C++

28.05.2011, 15:37. Просмотров 485. Ответов 5
Метки нет (Все метки)

Всем привет,люди знающие хорошо с++ помогите написать программу.
С внешнего устройства (с клавиатуры, из файла) вводятся последовательно числа, количество которых велико и заранее неизвестно. Требуется сохранять и в процессе ввода каждого числа распечатывать не более m последних введенных чисел (в порядке их поступления).
Сам пробывал,что-то вообще не получается.
Заранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2011, 15:37     нужно составить программу.
Посмотрите здесь:

нужно составить программу - C++
Помогите, пожалуйста, составить программу , срочно) x=arctgln(1/a*b) Заранее спасибо

нужно составить программу :) - C++
Помогите, пожалуйста, составить программу , срочно) x=arctgln(1/a*b) Заранее спасибо

Нужно составить программу - C++
На данный момент ничего не понимаю в С/С++ надо составить программу а как не знаю =( помогите если не трудно.... В одномерном...

Помогите,нужно составить программу вычисления задачи.. - C++
Вычислить растояние между двумя точками с координатами (Х1,у1) и (х2,у2) координаты вводятся с клавиатуры..

Нужно составить программу решения задачи оптимального выбора методом случайного тпоиска(монте-карло) - C++
Задана таблица из 10 элементов. Вес 16 11 12 13 14 15 16 17 18 19 Цена 18 20 17 19 22 21 27 23 25 24 Нужно составить...

Составить программу с массивами структурами. Заполнить структуры информации, составить - C++
Составить программу с массивами структурам согласно варианту. Заполнить структуры информации, составить запросы , и вывести результаты...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
9460 / 5473 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
28.05.2011, 16:49     нужно составить программу. #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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
typedef struct NODE {
    int val;
    struct NODE * next;
} node_t;
 
node_t * new_node(int val){
    node_t * n;
    
    if ( ( n = (node_t*)malloc(sizeof(node_t)) ) == NULL )
        return NULL;
    
    n->val = val;
    n->next = NULL;
    
    return n;
}
 
typedef struct QUEUE {
    size_t maxLength;
    size_t realLength;
    node_t * first;
    node_t * last;
} queue_t;
 
void shift(queue_t * q){
    node_t * n;
    
    if ( n = q->first ){
        q->first = q->first->next;
        free(n);
    }
}
 
int push(queue_t * q, int val){
    node_t * n;
    
    if ( ( n = new_node(val) ) == NULL )
        return -1;
 
    if ( ! q->first )
        q->first = n;
    else
        q->last->next = n;
    q->last = n;
    
    if ( q->realLength == q->maxLength )
        shift(q);
    else
        q->realLength += 1;
    
    return 0;
}
 
void dump(const queue_t * q){
    const node_t * n;
    
    for ( n = q->first; n; n = n->next )
        printf("%d ", n->val);
    printf("\n");
}
 
void purge(queue_t * q){
    while ( q->first )
        shift(q);
}
 
int main(void){
    queue_t queue;
    int i;
    
    memset(&queue, 0, sizeof(queue_t));
    printf("Queue length: ");
    scanf("%u", &queue.maxLength);
    
    while ( printf("Number: ") && scanf("%d", &i) == 1 ){
        if ( push(&queue, i) ){
            fprintf(stderr, "Error in queue!\n");
            exit(1);
        }
        printf("Queue: ");
        dump(&queue);
    }
    
    purge(&queue);
    exit(0);
}
нужно составить программу.
DarkMistik
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 10
28.05.2011, 17:07  [ТС]     нужно составить программу. #3
Спс большое.Есть пару вопросов по программе, Queue length: что обозначает и за что отвечает?
easybudda
Эксперт С++
9460 / 5473 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
29.05.2011, 01:29     нужно составить программу. #4
Цитата Сообщение от DarkMistik Посмотреть сообщение
Queue length: что обозначает и за что отвечает?
очень полезная ссылка
Я бы о другом беспокоился: код на С, а нужно на С++...
Вот немного по-другому, но думаю - тоже далеко не лучший вариант. В прочем для учебного примера вполне сойдёт.
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
#include <iostream>
#include <cstdlib>
 
class Queue {
    size_t maxLength;
    size_t pos;
    int * arr;
 
public:
    Queue(size_t ml) : maxLength(ml), pos(0) {
        if ( maxLength < 2 )
            maxLength = 2; // В массиве не меньше 2 элементов, а то не интересно...
        arr = new int [ maxLength ];
    }
 
    ~Queue(){
        delete [] arr;
    }
 
    friend std::istream & operator >> (std::istream & ist, Queue & q){
        int val;
 
        if ( ist >> val ){
            if ( q.pos == q.maxLength )
                memmove(q.arr, q.arr + 1, sizeof(int) * --(q.pos));
            q.arr[q.pos++] = val;
        }
 
        return ist;
    }
 
    friend std::ostream & operator << (std::ostream & ost, const Queue & q){
        for ( size_t i = 0; i < q.pos; ++i )
            ost << q.arr[i] << ' ';
 
        return ost;
    }
};
 
int main(){
    size_t ms; // max size
 
    std::cout << "Queue length: ";
    std::cin >> ms;
 
    Queue q(ms);
    while ( std::cout << "Number: " && std::cin >> q )
        std::cout << "Queue: " << q << std::endl;
 
    return 0;
}
нужно составить программу.
DarkMistik
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 10
30.05.2011, 19:10  [ТС]     нужно составить программу. #5
Пробывал загрузить испытать программу,жалуется на ошибки во 2,3 и 53 строчке
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2011, 21:04     нужно составить программу.
Еще ссылки по теме:

Нужно составить функцию - C++
Что бы меня все с первого раза понял попытаюсь как можно больше объяснить в первом сообщении. Я конечно ленивый до жути и не самый...

Нужно составить программы - C++
Пожалуйста помогите

Нужно составить программы - C++
1. Язык С++ 2. Помогите к понедельнику надо сдать, а язык вообще не понимаю И еще операторы ввода и вывода по возможности pintf и scanf...

Графы. Нужно составить алгоритм - C++
Помогите алгоритмизировать задачу! Нужно написать программу способную определить, можно ли в заданной системе односторонних дорог проехать...


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

Или воспользуйтесь поиском по форуму:
easybudda
Эксперт С++
9460 / 5473 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
30.05.2011, 21:04     нужно составить программу. #6
Цитата Сообщение от DarkMistik Посмотреть сообщение
Пробывал загрузить испытать программу,жалуется на ошибки во 2,3...
Это в Borland Turbo C++ какой-нибудь?
C++
1
2
#include <iostream.h>
#include <stdlib.h>
и std:: везде поубирать.

Цитата Сообщение от DarkMistik Посмотреть сообщение
и 53 строчке
Там столько нету!

так tcc компилирует
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
#include <iostream.h>
#include <stdlib.h>
 
class Queue {
        size_t maxLength;
        size_t pos;
        int * arr;
 
public:
        Queue(size_t ml) : maxLength(ml), pos(0) {
                if ( maxLength < 2 )
                        maxLength = 2; // В массиве не меньше 2 элементов, а то не интересно...
                arr = new int [ maxLength ];
        }
 
        ~Queue(){
                delete [] arr;
        }
 
        friend istream & operator >> (istream & ist, Queue & q){
                int val;
 
                if ( ist >> val ){
                        if ( q.pos == q.maxLength )
                                memmove(q.arr, q.arr + 1, sizeof(int) * --(q.pos));
                        q.arr[q.pos++] = val;
                }
 
                return ist;
        }
 
        friend ostream & operator << (ostream & ost, const Queue & q){
                for ( size_t i = 0; i < q.pos; ++i )
                        ost << q.arr[i] << ' ';
 
                return ost;
        }
};
 
int main(){
        size_t ms; // max size
 
        cout << "Queue length: ";
        cin >> ms;
 
        Queue q(ms);
        while ( cout << "Number: " && cin >> q )
                cout << "Queue: " << q << endl;
 
        return 0;
}

нужно составить программу.
Yandex
Объявления
30.05.2011, 21:04     нужно составить программу.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru