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

> Внимание!

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

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Проблема с организацией списка FIFO, C++
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






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

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

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


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

 





- Текстовая версия 11.09.2025 15:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name