Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2009, 17:16   #1
Alex1991
Форумчанин
 
Аватар для Alex1991
 
Регистрация: 18.10.2008
Сообщений: 166
Подмигивание Помогите с обьяснением кода

Не могли бы написать что дэлается:
Код:
#include <iostream>
#include <conio.h>
#include <time.h>
using namespace std;

int minn(int* M, int n)
{
 int i,mn=1;
 for(i=1;i<n;i+=2)
  if(M[i]<M[mn]) mn=i;
 return M[mn]; 
}

int* delmin(int *M, int &n, int mn) //например что означает значение со звездчочкой
 {
  int *tmp,k=0,i;
  tmp = new int[n];
  for(i=0;i<n;i++)
   if(M[i]!=mn) tmp[k++]=M[i];
     
  delete[] M;
  n = k;
  return tmp;  
 }

int main()
{
srand(time(NULL)); 
int *mas,i,minel,n;
cout<<"Vvedite razmer masssiva: ";
cin>>n;
mas = new int[n]; //и что означает new int ? ?
for(i=0;i<n;i++)
 {
  mas[i] = rand()%10;
  cout<<mas[i]<<" ";
 }
cout<<endl;

minel = minn(mas,n);
cout<<"Minimum: "<<minel<<endl;
mas = delmin(mas,n,minel);
cout<<endl;
for(i=0;i<n;i++)
 cout<<mas[i]<<" ";
 
delete[] mas; 

getch();
return 0;
}
и еще

Код:
#include <iostream>
#include <conio.h>
#include <time.h>
using namespace std;

void fun(int **M, int m, int n, int k)
{
 int i,j,l,tmp;

 if(k>=n) k %= n;
 for(i=1;i<m;i+=2)
 {
  tmp = M[i][0]; //єто типа один массив и его первый эле-нт ?? Что делается между ними ??
  for(l=0,j=0;l<n;l++)
   {
    if(l<n-1)
     {
     if(j+k<n)
      {
       M[i][j] = M[i][j+k];
       j = j + k;
      }
     else
      {
       M[i][j] = M[i][j+k-n]; //аналогичный вопрос что и выше
       j = j+k-n;
      }
    } 
    else
     M[i][j] = tmp;
   } 

 }

}


int main()
{
srand(time(NULL));
int **matr,i,j,m,n,k;
cout<<"Vvedite kolichestvo strok: ";
cin>>m;
cout<<"Vvedite kolichestvo stolbcov: ";
cin>>n;
matr = new int*[m];
for(i=0;i<m;i++)
 {
  matr[i] = new int[n];
  for(j=0;j<n;j++)
   {
    matr[i][j] = rand()%100;
    cout.width(4); //что это за вывод??
    cout<<matr[i][j];
   }
  cout<<endl;
 }
cout<<endl;
//--------
cout<<"Vvedite k: ";
cin>>k;
fun(matr,m,n,k);

for(i=0;i<m;i++)
 {
  for(j=0;j<n;j++)
   {
    cout.width(4);
    cout<<matr[i][j];
   }
  cout<<endl;
  delete[] matr[i]; //и что делает или удаляет здесь "штука" delete ?? 
 }
delete[] matr;

getch();
return 0;
}
Alex1991 вне форума Ответить с цитированием
Старый 31.03.2009, 17:25   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Alex1991, ответьте на вопрос: зачем вы создаете новую тему по задачам, решение которых я уже написал вам в вашей же теме:
http://programmersforum.ru/showthread.php?t=42079 ?
Неужели не могли спросить там?

Цитата:
и что делает или удаляет здесь "штука" delete ??
"штука delete" освобождает память под массив.
Цитата:
cout.width(4); //что это за вывод??
Задает ширину поля в 4 позиции.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 31.03.2009, 17:31   #3
Alex1991
Форумчанин
 
Аватар для Alex1991
 
Регистрация: 18.10.2008
Сообщений: 166
По умолчанию

спасибо это все что я хотел узнать !! (Все-таки нужно понять как работает)
Alex1991 вне форума Ответить с цитированием
Старый 31.03.2009, 17:38   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Alex1991, не заметил остальных вопросов:

Цитата:
int* delmin(int *M, int &n, int mn) //например что означает значение со звездчочкой
Это указатель.
Цитата:
mas = new int[n]; //и что означает new int ? ?
Динамическое выделение памяти.
Цитата:
tmp = M[i][0]; //єто типа один массив и его первый эле-нт ?? Что делается между ними ??
tmp = первому элементу в i-й строке.

Цитата:
(Все-таки нужно понять как работает)
Странно, что это желание возникло только сейчас, через пару недель.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 31.03.2009, 18:21   #5
Alex1991
Форумчанин
 
Аватар для Alex1991
 
Регистрация: 18.10.2008
Сообщений: 166
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Alex1991, не заметил остальных вопросов:


Это указатель.

Динамическое выделение памяти.

tmp = первому элементу в i-й строке.


Странно, что это желание возникло только сейчас, через пару недель.
Уже нашел и выучил )) Но все-равно спасибо!!! Приятно когда на форуме можут помочь по-человечески
Alex1991 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с оптимизированием кода nikzntu Общие вопросы C/C++ 3 25.03.2009 17:37
Помогите в написании кода... sobol556 Паскаль, Turbo Pascal, PascalABC.NET 0 23.03.2009 19:49
помогите понять кусок кода Arteom БД в Delphi 7 31.08.2007 08:51
Выдернуть куски кода из html-кода trafbite Помощь студентам 7 18.08.2007 13:51