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

Хочет знать и лабу сдать и все понять - C++

Войти
Регистрация
Восстановить пароль
 
Ежик
Сообщений: n/a
01.12.2008, 08:18     Хочет знать и лабу сдать и все понять #1
объясните что я тут сделал в пьяном бреду! Желательно про коментировать каждую строку программы.
Код
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <alloc.h>
 
struct value
{
int a;
value *b;
}
vl;
value *createelement(int tmpval)
{
     static unsigned int number1=0;
static value *p1first;
static value *p1temp,*p1next;
if (number1==0)
     {
p1first=new value;
        if (p1first==NULL)
{
            clrscr();
    return p1first;
}
     vl=*p1first;
             vl.a=tmpval;
vl.b=NULL;
*p1first=vl;
p1temp=p1first;
number1++;
}
             else
{
             p1next=new value;
if (p1next==NULL)
{
clrscr();
return p1first;
             }
vl=*p1temp;
vl.b=p1next;
*p1temp=vl;
     vl=*p1next;
             vl.a=tmpval;
vl.b=NULL;
             *p1next=vl;
p1temp=p1next;
number1++;
}
 
             return p1first;
             }
 
unsigned int counterelements(value *p1first)
{
unsigned int number=0;
if (p1first!=NULL)
{
     vl=*p1first;
number++;
while (vl.b!=NULL)
{
p1first=vl.b;
     vl=*p1first;
number++;
}
}
else number=0;
return number;
}
 
value *deleteelements(value *p1first)
{
value *p1del,*p2del;
unsigned int number;
number=counterelements(p1first);
                     if (p1first!=NULL)
{
vl=*p1first;
p1del=vl.b;
delete p1first;
for( unsigned int i=1;i<=number-1;i++)
             {
             vl=*p1del;
                                 p2del=vl.b;
             delete p1del;
             p1del=p2del;
             }
}
                     return NULL;
}
void rewriteelement(unsigned int number,int newvalue,value *p1first)
                 {
                 value *p1rewrite;
if (number!=0)
{
p1rewrite=p1first;
                 for(unsigned int i=0;i<=number-1;i++)
{
vl=*p1rewrite;
p1rewrite=vl.b;
}
                                     vl=*p1rewrite;
vl.a=newvalue;
*p1rewrite=vl;
 
}
else
{
vl=*p1first;
                     vl.a=newvalue;
*p1first=vl;
}
}
 
int readelement(unsigned int number,value *p1first)
{
value *p1read;
if (number!=0)
{
p1read=p1first;
for(unsigned int i=0;i<=number-1;i++)
{
                                     vl=*p1read;
p1read=vl.b;
}
vl=*p1read;
 
 
 
}
else
{
vl=*p1first;
}
return vl.a;
                 }
void sortirelements(value *p1first)
{
int max,max1;
unsigned int number=counterelements(p1first);
                 for(unsigned int i=0;i<=number-1;i++)
{
max=readelement(0,p1first);
for(unsigned int j=0;j<=number-2;j++)
{
if (max<readelement(j+1,p1first)) { max=readelement(j+1,p1first); }
else
{
                                                                                     rewriteelement(j,readelement(j+1,p1first),p1first);
rewriteelement(j+1,max,p1first);
}
}
 
 
}
clrscr();
for(unsigned i=0;i<=number-1;i++)
{
printf("A[ %u",i);
printf("]=%d",readelement(i,p1first));
printf("\n");
 
}
getch();
}
 
 
 
 
 
 
 
main()
{
value *p1first=NULL;
char q=0;
unsigned int number=0,numval;
int tval;
while (q!=27)
{
     clrscr();
     printf("1. Dobavit element v konteyner\n");
     printf("2. Poschitat kolichestvo elementov v konteynere\n");
     printf("3. Dostup k elementam massiva\n");
     printf("4. Udalit element iz konteynera\n");
printf("5. Sortirovka elementov v konteynere\n");
     printf("Esc - Exit \n");
     q=getch();
 
         if (q=='1') {
                 clrscr();
                 number=counterelements(p1first);
                 printf("Vvedite znachenie elementa massiva A[%d]=",number);
                  cin >> tval;
                 p1first=createelement(tval);
                 if (p1first==NULL) break;
     }
         if (q=='2') {
                 clrscr();
                 printf("Kolichestvo elementov v konteynere ravno %u ",counterelements(p1first));
                 getch();
                 clrscr();
}
if ((q=='3')&&(p1first!=NULL)) {
                 q=0;
             clrscr();
number=counterelements(p1first)-1;
do
                 {
                 printf("Vvedite nomer elementa ");
                 cin >> numval;
                 printf(" \n");
                 if (numval > number) printf("Element pod takim nomerom ne zadan\n");
                 }
                 while (numval> number);
                 printf("Element pod nomerom* A[%u",numval);
                 printf("] imeet znachenie %d",readelement(numval,p1first));
                 getch();
                 clrscr();
}
if ((q=='4')&&(p1first!=NULL))
             {
             p1first=deleteelements(p1first);
             }
if ((q=='5')&&(p1first!=NULL))
{
clrscr();
              sortirelements(p1first);
              }
     }
p1first=deleteelements(p1first);
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2008, 08:18     Хочет знать и лабу сдать и все понять
Посмотрите здесь:

Помогите, умоляю..... нужно сдать лабу..... срочно.... а нифига не получается.... я девушка, сразу поясняю..) C++
C++ помогите написать лабу
C++ C++ хочу все знать
Не могу сделать лабу C++ C++
делаю лабу осталось 8мин!!!! C++
C++ Помогите решить лабу.
Помогите решить лабу [2] C++
C++ Путешествие коня. Почему конь не хочет пробежать все возможные варианты?
C++ Странная ошибка не могу понять что она хочет)
C++ Не могу сделать лабу
Какие 2 сортировки надо знать, чтобы на все случаи жизни быть застрахованным? C++
C++ Какие книги стоит прочитать начинающему программисту С++ , чтобы понять все тонкости программирования?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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