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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 29.01.2010, 06:27   #1
LUCK
Новичок
Джуниор
 
Регистрация: 29.01.2010
Сообщений: 1
Восклицание

Нужна помощь проффи!

1) В одномерном массиве, состоящем из n веществ элементов, вычислить

А) сумму положительных элементов
Б) произведение наименьшего по модулю числа и наибольшего по модулю числа
В) сумму с нечетными номерами
Г) максимальный элемент массива
Д) сумму элементов массива, расположенных между первым и вторым нулевыми элементами
Е) количество элементов массива, больших С
Ж) произведение отрицательных элементов массива

2) Заданы матрицы А,В,С максимальной размерности (20,20). Вычислить матрицу D=AT*C*(CT+B)*BT. Предусмотреть возможность ввода матрицы А,В,С – меньшей размерности. Ввод размерности матриц организовать с терминала.

3) Провести сортировку элементов массива, расположенных на нечетных (четных) позициях по убыванию (возрастанию) методом пузырька и сортировоной выбором.

4) Провести сортировку массива по убыванию (возрастанию) методом Шелла.

Последний раз редактировалось Stilet; 29.01.2010 в 07:38.
LUCK вне форума
Старый 29.01.2010, 08:05   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну предположим некоторые можно решить так:
Код:
//---------------------------------------------------------------------------

#pragma hdrstop

#include <tchar.h>
#include <iostream.h>
#include <stdlib.h>
//---------------------------------------------------------------------------

#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
 const int n=5;
 float a[n],sumplus=0,sumnn=0,max=-999999,c=12,kc,po=1;
 for(int i=0;i<n;i++){
  a[n]=rand()-rand();
  cout<<a[n]<<'\t';
  //А) сумму положительных элементов
  sumplus+=(a[n]>0)?a[n]:0;
  //В) сумму с нечетными номерами
  sumnn+=(n%2==0)?a[n]:0;
  //Г) максимальный элемент массива
  max=(a[n]<max)?a[n]:max;
  //Е) количество элементов массива, больших С
  kc+=(a[n]>c)?1:0;
  //Ж) произведение отрицательных элементов массива
  po*=(a[n]<0)?a[n]:1;
 }
 cout<<'\n'<<sumplus<<'\t'<<sumnn<<'\t'<<max<<'\t'<<kc<<'\t'<<po<<'\t';
 cin.get();
	return 0;
}
//---------------------------------------------------------------------------
Borland C++
I'm learning to live...
Stilet вне форума
Старый 29.01.2010, 09:38   #3
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Удивительно, но у форумчан есть своя жизнь, поэтому просто так решать 4 задачи и потратить несколько часов жизни на тебя - наврятли кто согласится!

Возьмусь за вознаграждение, пиши в личку или асю!
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума
Старый 29.01.2010, 19:42   #4
Ushka1
 
Регистрация: 10.05.2009
Сообщений: 4
По умолчанию

2) Заданы матрицы А,В,С максимальной размерности (20,20). Вычислить матрицу D=AT*C*(CT+B)*BT. Предусмотреть возможность ввода матрицы А,В,С – меньшей размерности. Ввод размерности матриц организовать с терминала.


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

int** init_m( int );
void print_m( int**, int );
int** transp( int**, int );
int** sum( int**, int**, int );
int** mul( int**, int**, int );

main( int argc, char *argv[] ) {
    if (argc != 2 ) 
	cout <<"invalid argument"<<endl;
    else {
	int N = atoi( ++argv[1] );
	if( N > 20 )
	    cout <<"arg must be <= 20" <<endl;    
	else { 
	    int **A = init_m( N );
	    int **B = init_m( N );
	    int **C = init_m( N );
	    int **Bt, **Ct, **D;
	    cout <<"A:\n";
	    print_m( A, N );
	    cout <<"B:\n";
	    print_m( B, N );
	    cout <<"C:\n";
	    print_m( C, N );
	    A = transp( A, N );
	    Bt = transp( B, N );
	    Ct = transp( C, N );
	    D = mul( A, C, N );
	    D = mul( D, sum( Ct, B, N ), N);
	    D = mul( D, Bt, N );
	    cout <<"D:\n";
	    print_m( D, N );
	}
    }
}


int** init_m( int N ) {
    int **M = new int*[N];
    for( int i = 0; i < N; i++ )
	M[i] = new int[N];
    for( int i = 0; i < N; i++ )
	for( int j = 0; j < N; j++ )
	    M[i][j] = rand() % 20 - 10;
    return M;
}

void print_m( int** M, int N ) {
    for( int i = 0; i < N; i++ ) {
	for( int j = 0; j < N; j++ )
	    cout <<M[i][j] <<"\t";
	cout <<endl;
    }
}

int** transp( int** M, int N ) {
    int **res = init_m( N );
    
    for( int i = 0; i < N; i++ ) {
	for( int j = 0; j < N; j++ )
	    res[i][j] = M[j][i];
    }
    return res;
}

int** sum( int** M1, int** M2, int N ) {
    int **res = init_m( N );
    
    for( int i = 0; i < N; i++ )
	for( int j = 0; j < N; j++ )
	    res[i][j] = M1[i][j] + M2[i][j];
    return res;
}

int** mul( int** M1, int** M2, int N ) {
    int **res = init_m( N );
    int x;
    
    for( int i = 0; i < N; i++ )
	for( int j = 0; j < N; j++ ) {
	    x = 0;
	    for( int k = 0; k < N; k++ )
	        x += M1[i][k] * M2[j][k];
	    res[i][j] = x;
	}
    return res;
}
Ushka1 вне форума
Старый 29.01.2010, 19:42   #5
Ushka1
 
Регистрация: 10.05.2009
Сообщений: 4
По умолчанию

2) Заданы матрицы А,В,С максимальной размерности (20,20). Вычислить матрицу D=AT*C*(CT+B)*BT. Предусмотреть возможность ввода матрицы А,В,С – меньшей размерности. Ввод размерности матриц организовать с терминала.


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

int** init_m( int );
void print_m( int**, int );
int** transp( int**, int );
int** sum( int**, int**, int );
int** mul( int**, int**, int );

main( int argc, char *argv[] ) {
    if (argc != 2 ) 
	cout <<"invalid argument"<<endl;
    else {
	int N = atoi( ++argv[1] );
	if( N > 20 )
	    cout <<"arg must be <= 20" <<endl;    
	else { 
	    int **A = init_m( N );
	    int **B = init_m( N );
	    int **C = init_m( N );
	    int **Bt, **Ct, **D;
	    cout <<"A:\n";
	    print_m( A, N );
	    cout <<"B:\n";
	    print_m( B, N );
	    cout <<"C:\n";
	    print_m( C, N );
	    A = transp( A, N );
	    Bt = transp( B, N );
	    Ct = transp( C, N );
	    D = mul( A, C, N );
	    D = mul( D, sum( Ct, B, N ), N);
	    D = mul( D, Bt, N );
	    cout <<"D:\n";
	    print_m( D, N );
	}
    }
}


int** init_m( int N ) {
    int **M = new int*[N];
    for( int i = 0; i < N; i++ )
	M[i] = new int[N];
    for( int i = 0; i < N; i++ )
	for( int j = 0; j < N; j++ )
	    M[i][j] = rand() % 20 - 10;
    return M;
}

void print_m( int** M, int N ) {
    for( int i = 0; i < N; i++ ) {
	for( int j = 0; j < N; j++ )
	    cout <<M[i][j] <<"\t";
	cout <<endl;
    }
}

int** transp( int** M, int N ) {
    int **res = init_m( N );
    
    for( int i = 0; i < N; i++ ) {
	for( int j = 0; j < N; j++ )
	    res[i][j] = M[j][i];
    }
    return res;
}

int** sum( int** M1, int** M2, int N ) {
    int **res = init_m( N );
    
    for( int i = 0; i < N; i++ )
	for( int j = 0; j < N; j++ )
	    res[i][j] = M1[i][j] + M2[i][j];
    return res;
}

int** mul( int** M1, int** M2, int N ) {
    int **res = init_m( N );
    int x;
    
    for( int i = 0; i < N; i++ )
	for( int j = 0; j < N; j++ ) {
	    x = 0;
	    for( int k = 0; k < N; k++ )
	        x += M1[i][k] * M2[j][k];
	    res[i][j] = x;
	}
    return res;
}

Последний раз редактировалось Ushka1; 29.01.2010 в 19:49.
Ushka1 вне форума
Старый 29.01.2010, 19:52   #6
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Цитата:
Сообщение от LUCK Посмотреть сообщение
Нужна помощь проффи!
А что, такие задачи только профи решать умеют?

И вообще, http://programmersforum.ru/showthread.php?t=34061

Тему закрыл нафиг!

Последний раз редактировалось Carbon; 29.01.2010 в 19:54.
Carbon вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В массиве A, состоящем из 10 элементов, подсчитать количество положительных элементов Alex61 Помощь студентам 5 16.05.2009 23:06
Произведение отрицательных элементов в одномерном массиве - в чём ошибка? Жека:) Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 06.04.2009 16:10
В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива HazelHen Общие вопросы C/C++ 2 29.03.2009 15:16
Колличество четных элементов в одномерном массиве forsy Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 21.05.2008 15:01
вычислить сумму отрицательных элементов в массиве only_win Паскаль, Turbo Pascal, PascalABC.NET 2 25.09.2007 15:22