IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Проблема с организацией списка FIFO, C++
ninja
сообщение 17.05.2010 19:55
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 103
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Добрый вечер. Необходимо решить следующую задачу:

Разработать алгоритм и программу. Организовать и заполнить два линейных динамических списка L1 и L2 типа FIFO, элементами которых являются целые числа, принимающие значения в диапазоне типа Integer.
Выполнить следующие действия над списками:
- удалить из списка L1 все отрицательные числа и поместить их в список L2, взяв их по модулю;
- определить включает ли список L1 список L2, если включение имеет место, то объединить эти списки в один и упорядочить по возрастанию значений элементов.
Действия выполнятся в произвольном порядке по выбору пользователя с отображением результатов преобразований. При заполнении списка и добавлении элементов выполнить анализ объема доступной динамической памяти.


Начал писать программу столкнулся с такой проблемой необходимо в функцию передать 2 значения, из другой функции т.е. у меня функция spisok_L1 которая заполняет список, и функция prosmotr, но чтобы вывести значения из памяти мне необходимо знать адрес откуда начинать, и когда заканчивать вывод. Переменная schet4ik отвечает за количество элементов в списке, эта переменная передается, но как мне передать переменную которая указывает на начало списка.




#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
int menu ()
{
char menu[5][15]={{"Dobavlenie"},{"Prosmotr"},{"Sortirovka"},{"ochistka file"},{"exit"}};
int index=0;
char ch='\0';
int i,j=0;
while (ch!=13)
{
clrscr();
for (i=0;i<=4;i++)
{
if (i==index)
textattr(70);
j=0;
while (menu[i][j]!='\0')
cprintf("%c",menu[i][j++]);
printf("\n");
textattr(07);
}
ch=getche();
if (ch=='\0') ch=getch();
if (ch==72) index--;
if (ch==80) index++;
if (index==-1) index=4;
if (index==5) index=0;
}
return index;
}

struct L1
{
int info;
struct L1 *next;
};


spisok_L1()
{
L1 *head, *p;//*tail;
int chislo=0;
char ch='\0';
int schet4ik=0;

head=new(L1);
p=head;

while (ch!='n')
{
clrscr();
cout << "Vvedite element spiska " << endl;
cin >>chislo;
cout << endl;
(*p).info=chislo;
(*p).next=new(L1);
p=(*p).next;
//tail=p;
schet4ik++;
cout << "Prodoljitb vvod? [y/n]" << endl;
ch = getche();
cout << endl;
}
clrscr();
p=head;
//while (p!=tail)
{
//printf("%d",p->info);
//p=p->next;
}
return schet4ik;
}





int prosmotr (int schet4ik)
{
L1 *p, *head;
int k=0;

p=head;
while (k!=schet4ik)
{
cout << (*p).info << endl;
p=(*p).next;
k++;
}

//for (p=head;p!=tail;p=(*p).next)
// cout << (*p).info << endl;

getche();
return 0;
}

void main ()
{
L1 *head, *p, *tail;
int index;
int m=0;
do
{
index=menu();
switch (index)
{
case 0:{
m=spisok_L1();
break;
}
case 1:{
prosmotr(m);
break;
}
case 2:{

break;
}
case 3:{

break;
}
case 4:{

exit(1);
}

}
}
while (index!=4);


getch();
}

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 22.05.2010 0:09
Сообщение #2


Гость






Цитата
почему то функция clrscr() не работает
Потому что функция clrscr - это "примочка" Борланда. В компиляторах этой фирмы она есть. В других - нету. В Стандарте С++ про такую функцию тоже ни слова нет, кстати. Так что лучше ее вообще не использовать, чтоб не завязываться под определенный компилятор.

Цитата
код правда на половину мне не понятен
Welcome to C++ ... Что именно не понятно, можно уточнить? Вроде, ничего особенно сложного не используется.
 К началу страницы 
+ Ответить 

Сообщений в этой теме
ninja   Проблема с организацией списка FIFO   17.05.2010 19:55
volvo   Через двойной указатель. Вот так, например: int s...   17.05.2010 20:35
ninja   Спасибо огромное работает.   18.05.2010 17:41
ninja   Появилась еще одна проблема: когда запускаю програ...   18.05.2010 19:09
volvo   Я устал уже догадываться, тебе нужен С или С++, ты...   18.05.2010 19:54
ninja   Спасибо огромное Владимир, вообще нужно на С++, я ...   18.05.2010 20:57
volvo   Вот это - больше похоже на С++, чем то, что было н...   19.05.2010 17:55
ninja   ага, у меня обычный dos-овский Turbo C++, Владимир...   19.05.2010 23:22
ninja   Добавил еще 1 функцию Sort () которая должна сорти...   20.05.2010 16:39
volvo   Зачем? Достаточно было сделать: List myList; ...   20.05.2010 17:22
ninja   Отсортировать нужно следующим образом, в 1м списке...   20.05.2010 17:36
volvo   Ты постоянно что-то недоговариваешь... Ну, допусти...   20.05.2010 17:41
ninja   Извиняюсь.... Необходимо сначала разделить 1й спис...   20.05.2010 18:34
volvo   Значит, смотри что у меня получилось: Рассказыв...   20.05.2010 21:47
ninja   Владимир, тестировал сегодня программу, получились...   21.05.2010 14:58
volvo   Ну что ж, проверяем: И я вводил: Что я делал н...   21.05.2010 15:38
ninja   Вводил тоже что и Вы у меня совсем другие результа...   21.05.2010 16:03
volvo   У меня GCC, там все нормально, вечером попробую пр...   21.05.2010 17:12
ninja   Спасибо, попробовал по-другому ввел сначала положи...   21.05.2010 17:18
volvo   Ну, скачай. Как скачаешь - на GCC (и на любом друг...   21.05.2010 22:31
ninja   скачал GCC, попробовал запустить вроде работает но...   22.05.2010 0:01
volvo   Потому что функция clrscr - это "примочка...   22.05.2010 0:09
ninja   я имел ввиду синтаксис вот например private: ...   22.05.2010 15:50


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 26.07.2025 23:21
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"