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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Andrey2
0 / 0 / 0
Регистрация: 05.06.2007
Сообщений: 6
#1

помогите с задачами - C++

05.06.2007, 18:13. Просмотров 3401. Ответов 12
Метки нет (Все метки)

помогите пожалуйста решить две задачи по массивам я тут начал а дальше никак :
1 задача

Даны две действительные квадратные матрицы порядка 6. Получить новую матрицу прибавлением к элементам каждого столбца первой матрицы произведения элементов соответствующих строк второй матрицы. Вывести исходные и полученную матрицы.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream.h>
#include<math.h>
#include<conio.h>
main(){
    clrscr();
    const int n=6, m=6; 
    int i, j, a[n][m],b[n][m];
    cout<<"Vvedite 1 matricu 6x6\n";
    for (i=0;i<n;i++)
    for (j=0;j<n;j++)
    cin>>a[i][j];
    cin>>b[i][j];
2 Задача

Даны целые числа a1,...,a20. Наименьший член этой последовательности заменить целой частью среднего арифметического всех членов, остальные члены оставить без изменения. Если в последовательности несколько членов со значением min(a1,...,a20), то заменить последний по порядку.
C++
1
2
3
4
5
6
7
8
9
#include<iostream.h>
#include<conio.h>
main(){
    clrscr();
    const int n=20;
    int i, min, sred;
             int a[n];
             for (i=0; i<n; i++){
             cin>>a[i];
Заранее очень благодарен!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2007, 18:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос помогите с задачами (C++):

Помогите с задачами! - C++
1.06 Найти площадь равнобедренной трапеции с основаниями a и b и углом при большом осно-вании а. 1.21 Селекционер вывел новый сорт...

Помогите с задачами в с++ - C++
1)даны вещественные положительные числа a,b,c. Если существует треугольник со сторонами a,b,c: а)определить его вид (прямоугольный,...

Помогите с задачами - C++
Здравствуйте, помогите пожалуйста написать программы. 1)составить программу обмена значениями двух переменных величин а)без введения...

Помогите с 2 задачами - C++
Для меня они непонятны. 1)Найти элементы (и подсчитать их количество), которые не превосходят 10000 и делятся на одну из своих цифр...

Помогите со строковыми задачами - C++
1. Написать программу, которая проверяет, является ли введенная с клавиатуры строка целым числом. 2. Дана строка символов, среди...

Помогите с задачами: Одномерный массив, Строки, Двумерные массивы - C++
1. Одномерный массив Упорядочить элементы массива, удалив повторяющиеся элементы. 2. Строки Вводится строка,в конце ставится...

12
Rich
11 / 11 / 1
Регистрация: 16.03.2007
Сообщений: 108
05.06.2007, 22:07 #2
Пример выполнения второй задачи на С:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#define M 20
void main()
{
    int mas[M]={5,8,9,6,3,2,4,5,7,2,9,6,5,84,15,45,17,22,2,20};
    int k,summa,i,min;
k=0;// к запоминает индекс минимального элемента
summa=0;
min=mas[0];// за миним. принимается первый элемент
    for(i=0;i<M;i++)
        if(min>=mas[i]) { min=mas[i];k=i;}// ищется мин. элемент, а также запоминается индекс
 
for(i=0;i<M;i++) summa+=mas[i];// считается сумма
 
mas[k]=summa/M; // ищется целая часть
 
for(i=0;i<M;i++) printf("%d  ",mas[i]);// распечатывается полученный массив
}
0
Гость
Сообщений: n/a
05.06.2007, 22:51 #3
Большое спасибо Rich.
Подскажи пожалуйста как и первую сделать
Rich
11 / 11 / 1
Регистрация: 16.03.2007
Сообщений: 108
06.06.2007, 21:18 #4
Я тут кое-что набросал, что не устроит пиши
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <stdio.h>
 
void main()
{   int i,j,s=1;
    int m1[6][6]=
    {
        {5,3,2,7,8,1},
        {3,7,2,3,2,6},
        {9,1,3,2,4,1},
        {5,3,7,5,9,3},
        {0,3,5,1,2,8},
        {7,5,7,2,9,0}
    };
    int m2[6][6]=
    {
        {5,4,2,1,9,2},
        {9,5,6,2,8,9},
        {3,5,8,3,4,1},
        {9,5,0,3,2,3},
        {2,7,4,5,4,7},
        {2,5,3,4,1,9}
    };
    printf("Ischodnaia matrici:\nm1:\n");
    for(i=0;i<6;i++)
    {
        for(j=0;j<6;j++)
            printf("%d ",m1[i][j]);
        printf("\n");
    }
        printf("\nm2:\n");
        for(i=0;i<6;i++)
        {
            for(j=0;j<6;j++)
            printf("%d ",m2[i][j]);
            printf("\n");
        }
 
    for(i=0;i<6;i++)
    {
           for(j=0;j<6;j++) s*=m2[i][j];
            for(j=0;j<6;j++) m1[j][i]+=s;
            s=1;
    }
    printf("\nPoluchennaia matrica:\n");
    for(i=0;i<6;i++)
    {
        for(j=0;j<6;j++)
            printf("%d ",m1[i][j]);
    printf("\n");
    }
}
0
Andrey2
0 / 0 / 0
Регистрация: 05.06.2007
Сообщений: 6
07.06.2007, 14:59  [ТС] #5
Спасибо!
Во второй задаче у меня выводится:
5,8,9,6,3,2,4,5,7,2,9,6,5,84,15,45,17,22,2,20

так и должно быть?
0
Andrey2
0 / 0 / 0
Регистрация: 05.06.2007
Сообщений: 6
07.06.2007, 19:15  [ТС] #6
Rich посмотри пожалуйста, что с этой программой не так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<iostream.h>
#include<conio.h>
void main(){
    clrscr();
    int i;
        const int n=16;
        struct command;
        {
        unsigned short int player[11];
    char nazv;
    char stadion; 
        }
    command club[n];
    for (i=0;i<n;i++)
    {
    cout<<"\nVvedite commandu";
    cin>>club[i].nazv;
    cout<<"\nazvanie stadiona";
    cin>>club[i].stadion;
    cout<<"\nima igroka";
    for (j=0;j<n;j++)
    cin>>club[i].player[j];
    }
}
вот сама задача:
Описать структуру с именем Command, содержащую следующие поля: player-игроки команды (массив из 11 строк), nazv- название команды, stadion-домашний стадион. Написать программу, выполняющую ввод с клавиатуры данных в массив Club, состоящий из 16 элементов типа Command. Записи должны быть упорядочены по названию команд. Вывести на экран информацию об игроках команды, введенной с клавиатуры. Если такой команды нет, то вывести соответствующее сообщение.
0
Rich
11 / 11 / 1
Регистрация: 16.03.2007
Сообщений: 108
07.06.2007, 21:27 #7
Последняя 2 должна быть заменена на 13. У меня всё нормально выводится.

Я со структурами не очень.
0
Andrey2
0 / 0 / 0
Регистрация: 05.06.2007
Сообщений: 6
08.06.2007, 15:29  [ТС] #8
У меня тоже 13 я просто не заметил
0
Andrey2
0 / 0 / 0
Регистрация: 05.06.2007
Сообщений: 6
11.06.2007, 11:56  [ТС] #9
А как передать параметры в функцию по значению и по адресу?
и еще нужно использовать указатель на функцию и сделать шаблон этой функции.
по книге я чето не пойму как это сделать, Rich подскажи пожалуйста тугадуму
вот пример с которым все это нужно проделать:
0
Изображения
 
Rich
11 / 11 / 1
Регистрация: 16.03.2007
Сообщений: 108
15.06.2007, 00:49 #10
Я не понял задание. Может так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
    double i;
for(i=-0.5;i<=1.0;i+=0.1)
{
    if(i<0)   printf(" x=%2.1lf   y=%3.2lf\n",i,(1/i+0.2*i));
    if(i==0)  printf(" x=%2.1lf   y=%2.2lf\n",i,sqrt(i+0.5));
    if(i>0)   printf(" x=%2.1lf   y=%3.2lf\n",i,log(i+2.));
}
}
0
Andrey2
0 / 0 / 0
Регистрация: 05.06.2007
Сообщений: 6
15.06.2007, 23:07  [ТС] #11
все правильно только нужно передать функцию этой задачи по значению и по адресу.
И еще сделать шаблон этой функции, а также перегрузку.
Не пойму как это все нужно с этой функцией проделать.
C++
1
2
3
4
5
6
7
8
9
10
void main()
{
double i;
for(i=-0.5;i<=1.0;i+=0.1)
{
if(i<0) printf(" x=%2.1lf y=%3.2lf\n",i,(1/i+0.2*i));
if(i==0) printf(" x=%2.1lf y=%2.2lf\n",i,sqrt(i+0.5));
if(i>0) printf(" x=%2.1lf y=%3.2lf\n",i,log(i+2.));
}
}
там вот такие знаки: указатель *, ссылка &
0
Rich
11 / 11 / 1
Регистрация: 16.03.2007
Сообщений: 108
16.06.2007, 17:29 #12
Сейчас трудно думается - лето всё-таки за окном.
Я бы тебе порекомендовал книжку: Б.Керниган,Д.Ритчи "Язык программирования Си".
Там всё просто и понятно написано.
0
MAD Сomrade
Сообщений: n/a
17.06.2007, 00:08 #13
Я с вас офигиваю вообще, ведь матрицы можно заполнять на много проще и в некоторых случаях это удобнее и приветствуется преподами.
за это отвечает библиотека #include <stdlib.h> задается матрица и в цикле делается так
for(i=0;i<=n;i++) m1[i]=random(100)-50;

Нас лично так учили заполнять одномерные массивы ведь это на много удобнее, когда просто надо с любыми числами cделать какие либо действия!!!
17.06.2007, 00:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2007, 00:08
Привет! Вот еще темы с ответами:

Книга с задачами - C++
Подскажите хороший задачник по С++

Сборник с задачами - C++
Посоветуйте хороший сборник с задачами, потому что скучно мне)

Выручите с задачами по С++ - C++

Сайты с задачами - C++
Вот видел недавно сайт, на котором висит задание, ограничение по времени, занятому месту и т.п. На сайт кидаешь программу и он проверяет....


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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