Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Лабораторная С++ (нужна помощь..((

42K
02 декабря 2008 года
KPEMATOPP
3 / / 02.12.2008
1. Матрица Х[n]. составляющие - положительные целые числа (2-4 значных). n≤100. написать программу которая из
этого: 451 52 86 3 935 1216 15
сделает: 154 25 68 3 539 6121 51

2. Матрица X[n]. n≤100. составляющие - целые 2-х значные числа. Напишите программу которая выбирает и сортирует по возрастанию числа которые встречаются 1 раз в матрице, и которая отдельно выбирает и сортирует по возрастанию числа которые встречаются больше 1-го раза в матрице.


3. Напишите программу которая строит "Латинский квадрат". "Латинский Квадрат" это матрица размеров n*n, состоящий из чисел от 1 до n, n≤10:
пример:
1 2 3 4 5
5 1 2 3 4
4 5 1 2 3
3 4 5 1 2
2 3 4 5 1

4. Матрица A[n][m], n,m≤20. состоящая из целых чисел. Напишите программу которая вычисляет во скольких строках находится "0".

5. Матрица A[n][n] целых элементов, где n≤20. Если элементы главной диагонали соответсвенно равны элемантам второй диагонали, тогда отсортируйте по возрастанию элементы главной диагонали, если нет, тогда выявите минимальные элементы кажной колонки.


Люди, помогите... половину решил, остались эти, которые уже два дня не могу решить, а лабу скоро сдавать...
397
03 декабря 2008 года
SergPas
527 / / 03.02.2007
Задача №1
Скриншот:
[ATTACH]3214[/ATTACH]
Код:
#include <conio.h>  
#include <iostream.h>  
#include <stdlib.h>  
#include <string.h>  
#include <windows.h>  

char buf[100];
int N;
int* array;
char str[3];
char* rev;

void message(const char* msg)
{
    CharToOem(msg, buf);
    cout<<buf;
}

int RangedRand( int range_min, int range_max)
{
    return (double)rand()/(RAND_MAX+1)*(range_max-range_min)+range_min;
}


int main(void)
{
    message("Введите размерность массива: ");
    cin>>N;
    array=(int*)malloc(N*sizeof(int));
    message("Заполнение массива случайными числами: ");
    cout<<endl;
    srand(9);
    for (int i=0; i<N; i++)
    {
        array=RangedRand(10, 10000);
        cout<<array<<" ";
    }
    cout<<endl;
    message("Преобразованный массив:");
    cout<<endl;
    for (int i=0; i<N; i++)
    {
        _itoa(array, str, 10);
        rev=strrev(str);
        array=atoi(rev);
        cout<<array<<" ";
    }
     
    delete [] array;
    getch();
    return 0;
}
Задача №3
Скриншот:
[ATTACH]3215[/ATTACH]
Код:
#include <iostream.h>  
#include <conio.h>  
#include <windows.h>  
#include <stdlib.h>  

#define N 10  

char buf[50];
int array[N];
int latquads[N][N];

void message(const char* msg)
{
    CharToOem(msg, buf);
    cout<<buf<<endl;
}

int RangedRand( int range_min, int range_max)
{
    return rand()*(range_max-range_min)/32768+range_min;
}

int main(void)
{
    message("Генерация исходного массива:");
         
    for (int i=0; i<N; i++)
    {
        array=RangedRand(1, 10);
        cout<<array<<" ";
    }
    cout<<endl<<endl;
    message("\"Латинский квадрат\":");
    for (int i=0; i<N; i++)
        for (int j=i; j<N; j++)
            latquads[j]=array[j-i];
         
    for (int i=0; i<N; i++)
        for (int j=0; j<i; j++)
            latquads[j]=array[N-i+j];

    for (int i=0; i<N; i++)
    {
        for (int j=0; j<N; j++)
            cout<<latquads[j]<<" ";
        cout<<endl;
    }
    getch();
    return 0;
}
Задача №4
Скриншот:
[ATTACH]3216[/ATTACH]
Код:
#include <iostream.h>  
#include <stdlib.h>  
#include <conio.h>  
#include <windows.h>  

char buf[50];
int* parray;
int** array;
int N, M;
int count;

void message(const char* msg)
{
    CharToOem(msg, buf);
    cout<<buf;
}

int main(void)
{
    message("Введите размерность массива NxM:");
    cin>>N>>M;
    cout<<endl;
    array=(int**)malloc(N*sizeof(int*));
    parray=(int*)malloc(M*N*sizeof(int));
    for (int i=0; i<N; i++)
        *(array+i)=parray+i*M;
    message("Заполните массив:");
    cout<<endl;
    for (int i=0; i<N; i++)
        for (int j=0; j<M; j++)
            cin>>array[j];
    for (int i=0; i<N; i++)
        for (int j=0; j<M; j++)
            if (array[j]==0)
            {
                count++;
                break;
            }
    message("Нуль встречается в ");
    cout<<count<<" ";
    message("строках");
    getch();
    return 0;
}
Задача №5
Скриншоты:
[ATTACH]3217[/ATTACH] [ATTACH]3218[/ATTACH]
Код:
#include <conio.h>  
#include <iostream.h>  
#include <windows.h>  
#include <stdlib.h>  

char buf[100];
int N;
int* parray=NULL;
int** array=NULL;
bool b=true;
int min=0;

void message(const char* msg)
{
    CharToOem(msg, buf);
    cout<<buf;
}

int main(void)
{
    message("Введите размерность для динамического массива: ");
    cin>>N;
    cout<<endl;
    array=(int**)malloc(N*sizeof(int*));
    parray=(int*)malloc(sizeof(int)*N*N);
     
    for (int i=0; i<N; i++)
        *(array+i)=parray+i*N;
    message("Заролните массив:");
    cout<<endl;
    for (int i=0; i<N; i++)
        for (int j=0; j<N; j++)
            cin>>*(*(array+i)+j);
         
    for (int i=0, k=N-1; i<N; i++, k--)
    {
        if (!b)
            break;
        if (array!=array[k])
            {
                b=false;
                break;
            }
    }
             
    if (!b)
    {
        message("Элементы главной диагонали не равны элементам побочной диагонали");
        cout<<endl;
        for (int j=0; j<N; j++)
        {
            min=array[0][j];
            for (int i=0; i<N; i++)
                if (array[j]<min)
                    min=array[j];
                cout<<min<<" ";
        }
    }
    else
    {
        message("Элементы главной диагонали равны элементам побочной диагонали");
        cout<<endl;
        for (int i=0; i<N; i++)
        {
            min=array;
            for (int j=i; j<N; j++)
                if (array[j][j]<array)
                {
                    min=array;
                    array=array[j][j];
                    array[j][j]=min;
                }
             
        }
        //Вывод массива с отсортированной главной диагональю  
        for (int i=0; i<N; i++)
        {
            for (int j=0; j<N; j++)
                cout<<array[j]<<" ";
            cout<<endl;
        }
         
    }
     
    delete [] parray;
     
    getch();
    return 0;
}
И наконец вторую задачу я оставляю Вам на самостоятельное решение... :)
P.S. Интересен тот факт, что когда я только начинал писать (а использую я среду MinGW Studio) после компиляции следующих строк кода Debug-версии:
 
Код:
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>

int main(void)
{
    return 0;
}
"оживал" SpIDer Guard и писал следующее:
Цитата:
D:\help1\Debug\help1.exe - инфицирован Trojan.Shutdown.126

что свидетельствует о том, что только что скомпилированный файл якобы инфицирован... Мда... И такое бывает... :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог