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

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

Войти
Регистрация
Восстановить пароль
 
малыш_Викусик
0 / 0 / 0
Регистрация: 03.06.2010
Сообщений: 12
#1

матрицы и строки =( - C++

03.06.2010, 20:13. Просмотров 669. Ответов 12
Метки нет (Все метки)

Ребят привет!
у меня только первый семестр этого предмета, еще не освоилась..
не могли бы помочь с парочкой задач?
1. Дана целочисленная прямоугольная матрица. Определить:
1) сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент;
2) номера строк и столбцов всех седловых точек матрицы. Примечание. Матрица А имеет седловую точку Аij, если Аij является минимальным элементом в i-й строке и максимальным в j-м столбце.
2. Даны две строки, содержащие не более 100 символов. Строки состоят из слов, разделенных пробелами. Распечатать для каждой строки все слова, начинающиеся с заданной буквы.

желательно если можно то весь код. буду разбираться сама..
Пожаалуйста помогите!!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2010, 20:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос матрицы и строки =( (C++):

Определить, что все элементы строки первой матрицы больше соответствующих элементов строки второй матрицы - C++
Помогите,пожалуйста,с решением массивов в с++.надо в статическом и динамическом варианте. Даны две целочисленные квадратные матрицы...

умножить элемент каждой строки первой матрицы на наибольшее из значений элементов соответствующей строки второй матрицы - C++
Даны две действительные квадратные матрици порядка n. Получить новую матрицу: умножением элементов каждой строки первой матрици на...

Динамический массив. Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы - C++
#include <iostream.h> #include <math.h> #include <string.h> int kol_vo(int **a, int n, int m); int main() { int...

Найти среднее арифметическое элементов каждой строки матрицы Q (lm) и отнять его от элементов этой строки. размер матрицы 7х7.заранее спасибо - C++
Найти среднее арифметическое элементов каждой строки матрицы Q (lm) и отнять его от элементов этой строки.. размер матрицы 7х7.заранее...

умножением элементов каждой строки первой матрицы на наибольший из элементов соответствующей строки второй матрицы - C++
получить новую матрицу умножением элементов каждой строки первой матрицы на наибольший из элементов соответствующей строки второй...

Удалить строки динамической матрицы, начиная со строки К1 и до строки К2 - C++
Сформировать динамический двумерный массив, заполнить его случайными числами и удалить строки, начиная со строки К1 и до строки К2 вот...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
03.06.2010, 21:51 #2
2. Вроде понятно все )
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
const int SIZE =100; //максимальный размер массива
 //прототипы функций:
char *pr2 (char *in); //функция pr2 принимает как аргумент указатель на тип char, возвращает указатель на тип char
char *pr1 (char *in);//функция pr1 принимает как аргумент указатель на тип char, возвращает указатель на тип char
char *copy(char *, char *, int);//функция copy принимает как аргументы 2 указателя на тип char, и переменную
                                // типа int возвращает указатель на тип char
void form (char *a, char, char *out);//функция form принимает как аргумент указатель на тип char, переменную
                                    //типа char, указатель на тип char, ничего не возвращает (void)
 
int main()
{
        char buf[SIZE]={'\0'},  buf2[SIZE]={'\0'}, outbuf[SIZE]={'\0'}, outbuf2[SIZE]={'\0'}, p; //Объявление переменных
 
        cout<<"Vvedite 1 stroky: "; //вывод на экран сообщение
        cin.getline(buf, SIZE); //запись в переменную buf введенную с клавиатуры строку (не до пробела, а всю)
        cout<<"Vvedite 2 stroky: ";
        cin.getline(buf2, SIZE);
        cout<<"Vvedite bukvu: ";        
        cin>>p; //запись в переменную p буквы
        form(buf, p, outbuf); //вызов функции form, передача в функцию form указателя на 0-й элемент массива buf,
                            //буквы p и пустого массива outbuf (куда будет записан результат)
        form(buf2, p, outbuf2);
        cout<<"Rezultat dlya 1 stroki: "<<outbuf; //вывод результата
        cout<<endl<<endl;
        cout<<"Rezultat dlya 2 stroki: "<<outbuf2;
        cout<<endl<<endl;
}
void form (char *a, char p, char *out) //описание функции form
{       
        char *first=a; //объявляем указатель first и присваивается ему адрес a 
 
        while (*(first=pr1(a))) //пока возможна передача a в функцию pr1 (пропуск пробелов)
        {
                a=pr2(first); //a присваиваем адрес указателя, возвращенного функцией pr2 (пропуск букв)
                if (*first==p) //если первая буква (после пропуска пробелов) равна символу (введеной букве)
                        out=copy(first, out, a-first); //out присваиваем указатель, возвращенный функцией copy
                                        //а first в функции copy устанавливается на следующий пробел после слова
                                        //и цикл продоолжается) 
                                        //a-first - это длина слова (последний адрес-первый)
                else first=pr2(first);  //иначе, first вручную устанавливаем на первый после слова пробел
                                    //чтобы можно было продолжить цикл)
        }
}
char *pr1(char *in) //функция пропуска пробелов и табуляции
{ 
        while (*in&&(*in==' ')||(*in=='\t'))
                in++;
        return in;
}
char *pr2 (char *in) //функция пропуска букв
{
        while (*in&&*in!=' '&&*in!='\t')
                in++;
        return in;
}
char *copy(char * from, char *to, int len) //функция копирования
{
        for (int j=0; (j<len)&&(*to++=*from++); j++) //само копировани (копирует столько символов, сколько длина)
                ;       
        *to++=' '; //после скопированного слова поставить пробел в результирующую строку
        *to='\0';
        return to;
}
малыш_Викусик
0 / 0 / 0
Регистрация: 03.06.2010
Сообщений: 12
03.06.2010, 21:55  [ТС] #3
ого..
я тут даже половину функций не знаю..
даже разобраться не могу..(
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
03.06.2010, 22:00 #4
Цитата Сообщение от малыш_Викусик Посмотреть сообщение
я тут даже половину функций не знаю..
даже разобраться не могу..(
Тут нет ни одной стандартной библиотечной функции. Просто комментариев много, поэтому она так и выглядит)... А что вам в ней не понятно?
малыш_Викусик
0 / 0 / 0
Регистрация: 03.06.2010
Сообщений: 12
03.06.2010, 22:21  [ТС] #5
да почти все..
проста нам строки даже не показывали еще..
только чуть чуть помню с паскаля..
ну ладно разбераться будем..

а можно дать очень легкую задачку еще?=))
Даны 20 целых чисел. Определить, сколько из них больше предыдущего и последующего.
только без массива..
а без него не могу понять как сами числа сравнить=(

Добавлено через 17 минут
последнюю сделала, но только с массивом!!!
еее
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
04.06.2010, 00:19 #6
вот про седловую точку в 2х мерном массиве
там же есть задача где надо выяснить есть ли 2 подряд числа с одинаковым знаком, при этом не используется массив, легко можно переделать под твою там где больше-меньше.
малыш_Викусик
0 / 0 / 0
Регистрация: 03.06.2010
Сообщений: 12
04.06.2010, 02:10  [ТС] #7
нам много не показывали еще..
что такое randomfill, и что значит допустим **a,arr=new int [m], sedar=new int [m];
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
04.06.2010, 02:27 #8
Цитата Сообщение от малыш_Викусик Посмотреть сообщение
нам много не показывали еще..
что такое randomfill, и что значит допустим **a,arr=new int [m], sedar=new int [m];
random fill - заполнение матрицы случайными числами
arr=new int [m]- создание динамического массива размером m
**a - указатель на указатель
*a - просто указатель
малыш_Викусик
0 / 0 / 0
Регистрация: 03.06.2010
Сообщений: 12
04.06.2010, 12:04  [ТС] #9
а без всего этого можно упростить же программку?
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
04.06.2010, 12:29 #10
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
#include <iostream>
using namespace std;
const int n=20;
 
int main()
{
    setlocale (LC_ALL, "Russian");
    srand (time (NULL));
    int  i , a, b, c=0, q=0;
    cout<<"Введите "<<n<<" чисел: ";
    cin>>a;
    cin>>b;
    for (i=0; i<n-2; i++)
    {
        cin>>q;
        if (b>a&&b>q)
        {
            c++;
            cout<<b<<" ";
        }
        a=b;
        b=q;
    }
    cout<<"\nбольше предыдущего и последующего: "<<c<<" чисел";
 
    cout<<endl;
    return 0;
}
малыш_Викусик
0 / 0 / 0
Регистрация: 03.06.2010
Сообщений: 12
04.06.2010, 13:57  [ТС] #11
вопрос.
я через 5ый билдер работаю..
там не определяет эти функции
using namespace std;
setlocale (LC_ALL, "Russian");
srand (time (NULL));

их можно просто "выкинуть"?
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
04.06.2010, 14:38 #12
srand (time (NULL));
это можно просто вычеркнуть (оно тут и не нужно, с прошлой программы осталось)))
setlocale (LC_ALL, "Russian");
Это уберите и вместо русских букв (вывода сообщений на экран) напишите латинские.
малыш_Викусик
0 / 0 / 0
Регистрация: 03.06.2010
Сообщений: 12
04.06.2010, 16:56  [ТС] #13
я уже сделала)
но все равно спасибо, за помощь.

есть еще одна задачка, там метод итераций.
я вообще не знаю его=(


Определить приближенное значение корня уравнения x-tgx=0 с помощью метода итераций, если его начальное приближение x0=4,5 , а точность вычислений E=10-5. Определить также число необходимых для этого итераций.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2010, 16:56
Привет! Вот еще темы с ответами:

Указать номер строки, максимально удаленной от первой строки заданной матрицы - C++
Задание: Расстояние между k-й и 1-й строками квадратной матрицы А опеределяется как r = сумма от j=1 до N от (abs(akj)*abs(a1j)). Указать...

Найти среднее арифметическое каждой строки матрицы и отсортировать строки по возрастанию - C++
Дана квадратная матрица. Найти среднее арифметическое каждой строки и отсортировать строки по возрастанию этих характеристик

Переставить строки матрицы по возрастанию максимальных элементов каждой строки - C++
Дана целочисленная матрица м*н. Переставить строки матрицы по возрастанию максимальных элементов каждой строки.

Упорядочить строки матрицы D (m. n) Лексикографически по неубыванию первых k элементов строки - C++
Помогите решить задачу C++ пожалуйста, пожалуйста Упорядочить строки матрицы D (m. n) Лексикографически по неубыванию первых k...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.06.2010, 16:56
Ответ Создать тему
Опции темы

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