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

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

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

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

03.06.2010, 20:13. Просмотров 665. Ответов 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++
C++ Строки и матрицы
Строки\матрицы\структуры C++
Матрицы и строки C++
C++ Строки матрицы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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");
Это уберите и вместо русских букв (вывода сообщений на экран) напишите латинские.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2010, 16:56     матрицы и строки =(
Еще ссылки по теме:

C++ Сортировка строки матрицы
Сортировка строки матрицы C++
C++ Заполнение матрицы из строки
Упорядочить строки матрицы C++
C++ Из матрицы n-го порядка получить матрицу порядка n-1, удалив из исходной матрицы указанные строки и столбцы

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

Или воспользуйтесь поиском по форуму:
малыш_Викусик
0 / 0 / 0
Регистрация: 03.06.2010
Сообщений: 12
04.06.2010, 16:56  [ТС]     матрицы и строки =( #13
я уже сделала)
но все равно спасибо, за помощь.

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


Определить приближенное значение корня уравнения x-tgx=0 с помощью метода итераций, если его начальное приближение x0=4,5 , а точность вычислений E=10-5. Определить также число необходимых для этого итераций.
Yandex
Объявления
04.06.2010, 16:56     матрицы и строки =(
Ответ Создать тему
Опции темы

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