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

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

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

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

26.05.2010, 21:40. Просмотров 2005. Ответов 9
Метки нет (Все метки)

Задание

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

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

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

Разработать программу формирования очереди, содержащей целые числа, и упорядочивания по возрастанию элементов в этой очереди. - C++
Доброе всем время суток! Помогите пожалуйста! Разработать программу формирования очереди, содержащей целые числа, и упорядочивания по...

Написать программу для формирования матрицы по ее внешнему виду. - C++
Написать программу для формирования матрицы по ее внешнему виду. 5 4 3 2 1 6 7 8 9 10 15 14 13 12 11 ......................... ...

Написать программу с использыванием очереди на языке С - C++
Пожалуйста помогите написать програму с использыванием очереди на языке С

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

Напишите программу формирования массива - C++
Заданы два массива A и B одинаковой размерности. Напишите программу формирования массива С, компоненты которого определяются по формулам: ...

Составить программу формирования вектора - C++
Дана матрица В размера 5*7. Составить программу формирования вектора, элементы которого равны сумме элементов столбцов матрицы В.

9
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;
        }
 
}
0
Alch
3 / 3 / 0
Регистрация: 25.01.2010
Сообщений: 15
26.05.2010, 23:50  [ТС] #3
Ды при чём тут цикл, я очередях не бум бум(((
0
Syndarin
13 / 13 / 1
Регистрация: 15.09.2009
Сообщений: 57
27.05.2010, 00:03 #4
Односвязный список покатит? По-моему, если только заполнить, то разницы никакой.
0
Alch
3 / 3 / 0
Регистрация: 25.01.2010
Сообщений: 15
27.05.2010, 00:12  [ТС] #5
Цитата Сообщение от Syndarin Посмотреть сообщение
Односвязный список покатит? По-моему, если только заполнить, то разницы никакой.
В том то и дело((, односвязные мы уже прошли, тут очереди надо написать, он там дал ф-ции какие на то чтоб изменять эти очереди, а вот как объявить очередь и чё должно быть в главной ф-ции хз, я больше буду рад если мне не задание сделают а обьяснят(( ну или хотя бы ссылку дадут на какой нибудь учебник чля чайников, где про очереди подробно расписано чё к чему, до меня туго обычно доходит(((
0
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 минуты
упс, не прочел сообщение)))
0
Alch
3 / 3 / 0
Регистрация: 25.01.2010
Сообщений: 15
27.05.2010, 00:24  [ТС] #7
Цитата Сообщение от Syndarin Посмотреть сообщение
#include <alloc.h>
А вот эта библиотека за чё отвечает?
0
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();
}
1
accept
4822 / 3243 / 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;
}

для целых чисел в качестве очереди можно использовать массив целых чисел и указатели на начальный и конечный элементы
1
Alch
3 / 3 / 0
Регистрация: 25.01.2010
Сообщений: 15
28.05.2010, 10:38  [ТС] #10
Спасибо вам всем огромное))))) Если интересно то вот.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2010, 10:38
Привет! Вот еще темы с ответами:

напишите программу формирования массива размеров 5 х 5 - C++
напишите программу формирования массива размеров 5 х 5 с помощью датчика случайных чисел.замените в нем все четные значения элементов...

Записная книжка. Составить программу формирования данных о людях - C++
Записная книжка. Составить программу формирования данных о людях: Ф.И.О., город, улица, дом, квартира, № телефона. Организовать выбор...

Класс PriceList. Разработать программу формирования и распечатки прайс-листов - C++
Разработать программу формирования и распечатки прайс-листов. Прайс-лист компьютерной фирмы представляет собой список моделей продаваемых...

Напишите программу формирования массива С, компоненты которого определяются по формулам - C++
Заданы два массива A и B одинаковой размерности. Напишите программу формирования массива С, компоненты которого определяются по формулам: ...


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

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
28.05.2010, 10:38
Ответ Создать тему
Опции темы

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