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

Написать программу формирования очереди - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
Alch
3 / 3 / 0
Регистрация: 25.01.2010
Сообщений: 15
26.05.2010, 21:40     Написать программу формирования очереди #1
Задание

Написать программу формирования очереди из десяти целых чисел, кратных вашему номеру в журнале и выводе ее на экран.

Мой номер в жур. 15ый.

Вот если что сам практикум, но я ставил его код чёт не пашет, а примеров похожих не нашёл(((, я чёт даже не понял как объявить очереди...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2010, 21:40     Написать программу формирования очереди
Посмотрите здесь:

Написать программу для формирования матрицы по ее внешнему виду. C++
написать программу для удаления положительных элементов очереди C++
C++ Написать программу с использыванием очереди на языке С
C++ Разработать программу формирования очереди, содержащей целые числа, и упорядочивания по возрастанию элементов в этой очереди.
C++ Напишите программу формирования массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
26.05.2010, 23:25     Написать программу формирования очереди #2
Цитата Сообщение от Alch Посмотреть сообщение
Задание

Написать программу формирования очереди из десяти целых чисел, кратных вашему номеру в журнале и выводе ее на экран.

Мой номер в жур. 15ый.
неужели так трудно в цикле умножить 15 на числа от 1 до 10 ?
из-за этого весь сыр-бор?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <clocale>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"");
    int num=15;
        for(int i=1;i<=10;i++)
        {
        cout<<num*i<<endl;
        }
 
}
Alch
3 / 3 / 0
Регистрация: 25.01.2010
Сообщений: 15
26.05.2010, 23:50  [ТС]     Написать программу формирования очереди #3
Ды при чём тут цикл, я очередях не бум бум(((
Syndarin
13 / 13 / 1
Регистрация: 15.09.2009
Сообщений: 57
27.05.2010, 00:03     Написать программу формирования очереди #4
Односвязный список покатит? По-моему, если только заполнить, то разницы никакой.
Alch
3 / 3 / 0
Регистрация: 25.01.2010
Сообщений: 15
27.05.2010, 00:12  [ТС]     Написать программу формирования очереди #5
Цитата Сообщение от Syndarin Посмотреть сообщение
Односвязный список покатит? По-моему, если только заполнить, то разницы никакой.
В том то и дело((, односвязные мы уже прошли, тут очереди надо написать, он там дал ф-ции какие на то чтоб изменять эти очереди, а вот как объявить очередь и чё должно быть в главной ф-ции хз, я больше буду рад если мне не задание сделают а обьяснят(( ну или хотя бы ссылку дадут на какой нибудь учебник чля чайников, где про очереди подробно расписано чё к чему, до меня туго обычно доходит(((
Syndarin
13 / 13 / 1
Регистрация: 15.09.2009
Сообщений: 57
27.05.2010, 00:22     Написать программу формирования очереди #6
Держи, здесь со списком:

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
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
 
struct zap
    {
        int info;
        struct zap *p;
    };
void insert(struct zap **first, int include)
{
    struct zap *cur;
    struct zap *pre=0;
    struct zap *new;
    cur=*first;
    new=(struct zap *) malloc(sizeof(struct zap));
    new->info=include;
    if(cur)
    {
        while(cur)
        {
            pre=cur;
            cur=cur->p;
        }
        new->p=pre->p;
        pre->p=new;
    }
    else
    {
        *first=new;
        (*first)->p=0;
    }
}
void display(struct zap *first)
{
    struct zap *cur=0;
 
    cur=first;
    while(cur)
    {
     printf("%d->", cur->info);
     cur=cur->p;
    }
    printf("END\n");
}
 
void main()
{
    struct zap *first=0;
    int include, number;
    int i;
 
    printf("Vvedie vash nomer v zhurnale: ");
    scanf("%d", &number);
 
    printf("Creation of list:\n ");
    include=number;
    for (i=0; i<10; i++)
    {
        insert(&first, include);
        include+=number;
    }
    display(first);
    getch();
}
Добавлено через 2 минуты
упс, не прочел сообщение)))
Alch
3 / 3 / 0
Регистрация: 25.01.2010
Сообщений: 15
27.05.2010, 00:24  [ТС]     Написать программу формирования очереди #7
Цитата Сообщение от Syndarin Посмотреть сообщение
#include <alloc.h>
А вот эта библиотека за чё отвечает?
Syndarin
13 / 13 / 1
Регистрация: 15.09.2009
Сообщений: 57
27.05.2010, 23:47     Написать программу формирования очереди #8
Если правильно понимаю, то за выделение памяти. Используемая функция malloc резервирует место в памяти под используемую структуру.

Добавлено через 2 минуты
Переменные и функции управления памятью. Так в alloc.h описано

Добавлено через 6 минут
Хорошие у вас методички, а главное - на русском [грустно вздыхает]

Добавлено через 23 часа 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
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
 
struct zap /*описание структуры*/
{
    int x;
    struct zap *p;
};
 
void insert(struct zap **begin, struct zap **end, int temp) /*функ вставки элемента в очередь*/
{
    struct zap *new=0;/*указатель на новый элемент*/
    new=(struct zap *) malloc(sizeof(struct zap)); /*выделение памяти под него*/
    new->x=temp; /*присваиваем инф частри стр-ры значение temp*/
    new->p=0; /*обнуляем указатель на следующий элемент*/
 
    if(*begin==0) /*если указатель на голову пуст, т.е. очередь пуста*/
    {
        *begin=new; /*голова=новый элемент*/
        *end=new; /*хвост=новый элемент*/
    }
    else /*в очереди уже есть элемент(ы)*/
    {
        (*end)->p=new;
        *end=new;
    }
 
}
 
 
void display(struct zap *begin) /*функция вывода на экран*/
{
    struct zap *cur=0;
 
    cur=begin;
    while(cur)
    {
        printf("%d <- ", cur->x);
        cur=cur->p;
    }
    printf("END\n");
 
}
 
void main()
{
    struct zap *begin=0; /*указатель на голову очереди*/
    struct zap *end=0; /*указатель на хвост, т.е. последний элемент*/
    int number; /*номер в журнале*/
    int i; /*счетчик*/
    int temp;
 
    clrscr();
    printf("Vvedite vash nomer v zhurnale: ");
    scanf("%d", &number);
 
    printf("Creation:\n");
    temp=number;
    for(i=0; i<10; i++)
    {
      insert(&begin, &end, temp); /*вызов функции вставки*/
      temp+=number;
    }
 
    display(begin); /*вывод на экран*/
    getch();
}
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
28.05.2010, 05:38     Написать программу формирования очереди #9
пример очереди

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
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
struct node {
    char *p;
    struct node *next;
};
 
struct queue {
    struct node *head, *tail;
};
 
void CreateQueue(struct queue *pq);
void ClearQueue(struct queue *pq);
int PutQueue(struct queue *pq, struct node *pn);
int GetQueue(struct queue *pq, struct node *pn);
 
/* creates a queue, puts there some elements
   reads the queue and prints every element */
int main(void)
{
    struct queue q;
    struct node n = { "one", NULL };
    struct node m = { "two", NULL };
    
    CreateQueue(&q);
    
    PutQueue(&q, &n);
    PutQueue(&q, &m);
    PutQueue(&q, &n);
    PutQueue(&q, &m);
    PutQueue(&q, &n);
    PutQueue(&q, &m);
        
    while (GetQueue(&q, &n) != 0)
        printf("%s" "\n", n.p);
    
    return EXIT_SUCCESS;
}
 
/* CreateQueue:  creates a clear queue pq */
void CreateQueue(struct queue *pq)
{
    pq->head = pq->tail = NULL;
}
 
/* ClearQueue:  clears a queue pq */
void ClearQueue(struct queue *pq)
{
    struct node *tmp;
    
    while ((tmp = pq->head) != NULL) {
        pq->head = tmp->next;
        free(tmp);
    }
    pq->tail = NULL;
}
 
/* PutQueue:  puts to a queue pq a node pn;
              returns 1 or 0 */
int PutQueue(struct queue *pq, struct node *pn)
{
    struct node *tmp;
    
    tmp = (struct node *) malloc(sizeof(struct node));
    
    if (tmp == NULL)
        return 0;
    
    *tmp = *pn;
    tmp->next = NULL;
    
    if (pq->head == NULL)
        pq->head = pq->tail = tmp;
    else {
        pq->tail->next = tmp;
        pq->tail = tmp;
    }
    
    return 1;
}
 
/* GetQueue:  gets from a queue pq a node pn;
              returns 1 or 0 */
int GetQueue(struct queue *pq, struct node *pn)
{
    struct node *tmp;
    
    if (pq->head == NULL) {
        pq->tail = NULL;
        return 0;
    }
    
    tmp = pq->head;
    *pn = *tmp;
    pq->head = tmp->next;    
    free(tmp);
    
    return 1;
}

для целых чисел в качестве очереди можно использовать массив целых чисел и указатели на начальный и конечный элементы
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2010, 10:38     Написать программу формирования очереди
Еще ссылки по теме:

C++ Составить программу формирования вектора
Написать программу содержащую процедуры формирования и просмотра списка и функцию вставляющую элемент с заданным номером C++

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

Или воспользуйтесь поиском по форуму:
Alch
3 / 3 / 0
Регистрация: 25.01.2010
Сообщений: 15
28.05.2010, 10:38  [ТС]     Написать программу формирования очереди #10
Спасибо вам всем огромное))))) Если интересно то вот.
Yandex
Объявления
28.05.2010, 10:38     Написать программу формирования очереди
Ответ Создать тему
Опции темы

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