C++ кодеры

4.06K
.
nan4ik, да, самый простой как ты и просил =)
.
А в с++ приложения с формами можно делать?как в дэлфи=)
.
The Frontend-Warrior
nan4ik (14.06.2012/05:27)
А в с++ приложения с формами можно делать?как в дэлфи=)
можно. скачай MS Visual C++
.
Это-гуд!Я хотел пример калькулятора не консольног,а хз как это сказать,вообщем с использованием формы
.
Только что основы доучил) Вот уже конвертер консольный написал C° : F°
.
Прога берет матрицу и крутит элементы с нечетными номерами на 180 градусов
Может кому нужна будет, я как-то не сразу сообразил как её решать, но все-таки сообразил

#include <iostream>
using namespace std;

int main()
{
setlocale (LC_ALL, "");
int m;
int n=0; //номер элемента
cout << "Введите размер массива\nn=";
cin >> m;
/*Задаем массив*/
double **a = new double *[m];
for (int i=0; i<m; i++)
a[i]= new double [m];
cout << "\n\nВведите данные массива\n";
/*Записываем массив*/
for (int i=0; i<m; i++)
{
for (int j=0; j<m; j++)
{
/*
cout << "a[" << i << "][" << j << "]=";
cin >> a[i][j];
cout << "\n";
*/
a[i][j]=rand()%12-5;
}
}

/*Выводим начальный массив*/
cout << "\nНАЧАЛЬНЫЙ МАССИВ\n";
for (int i=0; i<m; i++)
{
for (int j=0; j<m; j++)
{
cout << a[i][j] << "\t";
}
cout << "\n";
}

/*находим количество строк(столбоцов) с нечетными номерками */
for (int i=0; i<m; i++)
for (int j=0; j<m; j++)
if ((i%2!=0)&&(j%2!=0))
n++;

/*переходим к записи нужных элементов в дополнительный массив*/
double *rez = new double [n];
int l=0;
for (int i=0; i<m; i++)
{
for (int j=0; j<m; j++)
{
if ((i%2!=0)&&(j%2!=0))
{
rez[l]=a[i][j];
l++;
}
}
}

/*Вывод обрабатывающих элементов*/
cout << "\nЭлементы с нечетными номерами\n";
for (int i=0; i<l; i++)
cout << rez[i] << "";
cout << "\n" << "Количество элементов: " << l;
cout << "\n\n";

l=0;
/*запись данных в начальный массив*/
for (int i=0; i<m; i++)
{
for (int j=0; j<m; j++)
{
if ((i%2!=0)&&(j%2!=0))
{
a[i][j]=rez[n-1-l];
l++;
}
}
}

cout << "\nРЕЗУлЬТАТ\n";
/*вывод данных на экран*/
for (int i=0; i<m; i++)
{
for (int j=0; j<m; j++)
{
cout << a[i][j] << "\t";
}
cout << "\n";
}

for (int i=0; i<m; i++)
delete a[i];
delete []a;
delete []rez;
system("pause");
}
.
Сейчас будем осваивать ООП, а то в консулях уже надоело
.
ПОМОГИТЕ ПЛИЗ, гугл не помог
Кратко о главном(программе):
вводим количество элементов массива(программа генерирует элементы)
проводится сортировка по возрастанию, убираются нули и одинаковые элементы
на экран выводятся положительные и отрицательные числа
все построено на функциях

ВОТ КОД:
#include <iostream>
#include <cstdlib> //подключаем rand
using namespace std;

int sortirovka (int *a, const int n);//обработка массива
int positive   (int *positive_arr, const int count_p);//положительный числа
int negative   (int *negative_arr, const int count_n);//отрицательные числа
int generator (int *a, const int n);//ввод данных в массив(генератор)

int main()
{
    srand(time(0));
    setlocale(LC_ALL, "");
    int n;
    int *a = new int [n];
    cout << "Введите размер массива,\nn=";  cin >> n;
    generator (a, n);
    cout << "\n";
    cout << "***Начальный массив\n";
    for (int i=0;i<n;i++)
        cout << a[i] << " ";
    sortirovka (&a[0],n);//проводим обработку массива
    cout << "\n\n***Массив после обработки\n";
    for (int i=0;i<n;i++)
        cout << a[i] << " ";
    cout << "\n\n***РЕЗУЛЬТАТ\n";
    cout << "Положительные числа:\n";
    positive (&a[0],n);
    cout << "\n";
    cout << "Отрицательные числа:\n";
    negative (&a[0],n);
    cout << "\n\n";
    delete []a;
}

int generator (int *a, const int n)
{
    for (int i=0; i<n; i++)
    {
        /*
        cout << "a[" << i << "]=";
        cin >> a[i];
        */
        a[i]=rand()%21-9;
    }
}
int positive (int *a, const int n)
{
    int *positive_arr = new int;
    int count_p=0;
    for (int i=0; i<n; i++)
    {
        if (a[i]>0)
        {
            positive_arr[count_p]=a[i];
            count_p++;
        }
    }
    for (int i=0;i<count_p;i++)
        cout << positive_arr[i] << " ";
}
int negative (int *a, const int n)
{
    int *negative_arr = new int;
    int count_n=0;
    for (int i=0; i<n; i++)
    {
        if (a[i]<0)
        {
            negative_arr[count_n]=a[i];
            count_n++;
        }
    }
    for (int i=0;i<count_n;i++)
        cout << negative_arr[i] << " ";
}
int sortirovka( int *a, const int n)
{
    int temp;
    for (int z=0;z<n;z++)
        for (int i=0;i<n;i++)
        {
            if (a[i]>a[i+1])
            {
                temp=a[i];
                a[i]=a[i+1];
                a[i+1]=temp;
            }
        }
    for (int z=0;z<n;z++)
        for (int i=0;i<n;i++)
        {
            if (a[i]!=a[i+1])
                a[i]=a[i];
            else
                a[i]=a[i]*0;
        }
    return (*a);
}


Программа работает, но проблема в том, что она обрезает последний(самый большой положительный) элемент..
Проблема в функции сортировки, только вот что не так, я как-то не вьеду
Помогите, завтра сдавать уже
.
никто не помог, ну да и ладно, я сам решил проблему, просто переписал
вот код, мож кому нужно будет:
#include <iostream>
#include <cstdlib>
using namespace std;

int output_arr      (int *iarr, const int n);
int sortirovka_arr  (int *a, const int n);
int input_arr       (int *iarr, const int n);
int positive        (int *iarr, const int n);
int negative        (int *iarr, const int n);

int main()
{
    srand(time(0));
    setlocale (LC_ALL, "");
    int *iarr = new int;
    int n;
    cout << "Количество цифр" << endl << "n="; cin >> n;
    input_arr(&*iarr,n);
    cout << endl << "Начальный массив:" << endl;
    output_arr(&*iarr,n);
    sortirovka_arr(&*iarr, n);
    cout << endl << "Массив после сортировки:" << endl;
    output_arr(&*iarr,n);
    cout << endl << "Положительные числа:" << endl;
    positive(&*iarr,n);
    cout << endl << "Отрицательные числа:" << endl;
    negative(&*iarr,n);
    cout << endl;
}

int sortirovka_arr  (int *iarr, const int n){
    int temp;
    for (int j=0; j<n-1; j++)
        for (int i=0; i<n-1; i++){
            if(iarr[i]>iarr[i+1]){
                temp=iarr[i];
                iarr[i]=iarr[i+1];
                iarr[i+1]=temp;
            }
        }
    for (int j=0; j<n-1; j++)
        for (int i=0; i<n-1; i++){
            if (iarr[i]==iarr[i+1])
                iarr[i]=iarr[i]*0;
            else
                iarr[i]=iarr[i];
        }
    return(*iarr);}
int output_arr      (int *iarr, const int n)
{
    for (int i=0; i<n; i++)
        cout << iarr[i] << "    ";
}
int input_arr       (int *iarr, const int n)
{
    for (int i=0; i<n; i++){
        /*cout << "arr[" << i << "]=";    cin >> iarr[i];*/
        iarr[i]=rand()%20-10;}
}
int positive        (int *iarr, const int n)
{
    for (int i=0; i<n; i++)
        if(iarr[i]>0)
            cout << iarr[i] << "   ";
}
int negative        (int *iarr, const int n)
{
    for (int i=0; i<n; i++)
        if(iarr[i]<0)
            cout << iarr[i] << "   ";
}
.
UJIN,
sortirovka_arr
За такое надо расстреливать почему нельзя было назвать например array_sort?
Всего: 168