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

Функция грамматики (объяснить) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывести номера всех седловых точек матрицы http://www.cyberforum.ru/cpp-beginners/thread717047.html
написала код который должен считать 1) сумму элементов тех строк матрицы, в которых хотя бы один элемент отрицательный, 2) выводить номера всех седловых точек #include <iostream> #include <conio.h> #include <stdio.h> #include <math.h> #include <iomanip> using namespace std; int main() {
C++ Найти количество столбцов матрицы, содержащих хотя бы один нулевой элемент Помогите пожалуйста написать программу, буду признательна и благодарна. Дана целочисленная прямоугольная матрица. Определить: 1.) количество столбцов, содержащих хотя бы один нулевой элемент; 2.) номер строки, в которой находится самая длинная серия одинаковых элементов. http://www.cyberforum.ru/cpp-beginners/thread717024.html
C++ отредактивароть код
Помогите пожалуйста, нужно что бы программа правильно заработала #include "stdafx.h" #include <locale> #include "time.h" #include "math.h" #include "stdlib.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv)
Функция (объяснить) C++
Здраствуйте помогите пожалуйста разобраться в функции Не пойму, мы передаём в функцию символ и массив символов, i- счётчик, по которому мы движемся до конца строки если элемент массива совпадаем с переданным символом -> выходим и возращаем i ? или просто выходим из функции? int SearchTerminal(char c,char T) { int i; for (i=0; T !='\0'; i++)
C++ Одномерный массив, найти среднее арифметическое отрицательных элементов http://www.cyberforum.ru/cpp-beginners/thread717001.html
подскажите пожалуйста как решить: Дано два массива а (n) и в (n) .Найти среднее арифметическое отрицательных элементов в двух массивах. нужно использовать один цикл.
C++ Ввести фамилию, имя и отчество как одно текстовое данное. Определить длину данного и количество букв «а» в нем Ввести фамилию, имя и отчество как одно текстовое данное. Определить длину данного и количество букв «а» в нем. Решить задачу двумя способами: 1) используя функции из библиотеки <string.h>; 2) рассматривая введенный текст как массив символов. ЗАДАЧА. Вывести третье слово и количество букв в фамилии. подробнее

Показать сообщение отдельно
yuliyayuliya28
3 / 3 / 0
Регистрация: 06.03.2011
Сообщений: 319
03.12.2012, 03:56     Функция грамматики (объяснить)
здравствуйте помогите разобрать функцию,


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
char    *Grammar[]={
    "Z:E",
    "E:E+T",
    "E:E-T",
    "E:T",
    "T:T*F",
    "T:T/F",
    "T:F",
    "F:i",
    "F:c",
    "F:(E)",
    NULL
    };
 
 
int TestOnGrammar()
{
        char *ss,*q;
        int n,j;
        for (n=0; Grammar[n] !=NULL; n++){//
                for(q=ss=Grammar[n]+2; *ss !='\0'; ss++);
                ss--;
                for(j=sp; (ss>=q) && (Stack[j]==*ss); j--,ss--);
                if (q== ss+1){
                        j++;
                        sp=j;
                        Stack[sp]=*Grammar[n];
                        Stack[sp+1]='\0';
                        return(1);
                }
        }
Проходим по всему массиву грамматика, for (n=0; Grammar[n] !=NULL; n++)
в этой строке проходим по одному элементу массива?т.е. например "Z:E" мы пропускаем Z: и находимся на E так? for(q=ss=Grammar[n]+2; *ss !='\0'; ss++);
дальнейшее не очень понятно(

Добавлено через 48 минут
Цитата Сообщение от yuliyayuliya28 Посмотреть сообщение
здравствуйте помогите разобрать функцию,


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
char    *Grammar[]={
    "Z:E",
    "E:E+T",
    "E:E-T",
    "E:T",
    "T:T*F",
    "T:T/F",
    "T:F",
    "F:i",
    "F:c",
    "F:(E)",
    NULL
    };
 
 
int TestOnGrammar()
{
        char *ss,*q;
        int n,j;
        for (n=0; Grammar[n] !=NULL; n++){//
                for(q=ss=Grammar[n]+2; *ss !='\0'; ss++);
                ss--;
                for(j=sp; (ss>=q) && (Stack[j]==*ss); j--,ss--);
                if (q== ss+1){
                        j++;
                        sp=j;
                        Stack[sp]=*Grammar[n];
                        Stack[sp+1]='\0';
                        return(1);
                }
        }
Проходим по всему массиву грамматика, for (n=0; Grammar[n] !=NULL; n++)
в этой строке проходим по одному элементу массива?т.е. например "Z:E" мы пропускаем Z: и находимся на E так? for(q=ss=Grammar[n]+2; *ss !='\0'; ss++);
дальнейшее не очень понятно(
Grammar[n] - элемент массива
Grammar[n]+2 - правая часть элемента после :

Добавлено через 3 часа 6 минут
Цитата Сообщение от yuliyayuliya28 Посмотреть сообщение
здравствуйте помогите разобрать функцию,


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
char    *Grammar[]={
    "Z:E",
    "E:E+T",
    "E:E-T",
    "E:T",
    "T:T*F",
    "T:T/F",
    "T:F",
    "F:i",
    "F:c",
    "F:(E)",
    NULL
    };
 
 
int TestOnGrammar()
{
        char *ss,*q;
        int n,j;
        for (n=0; Grammar[n] !=NULL; n++){//
                for(q=ss=Grammar[n]+2; *ss !='\0'; ss++);
                ss--;
                for(j=sp; (ss>=q) && (Stack[j]==*ss); j--,ss--);
                if (q== ss+1){
                        j++;
                        sp=j;
                        Stack[sp]=*Grammar[n];
                        Stack[sp+1]='\0';
                        return(1);
                }
        }
Проходим по всему массиву грамматика, for (n=0; Grammar[n] !=NULL; n++)
в этой строке проходим по одному элементу массива?т.е. например "Z:E" мы пропускаем Z: и находимся на E так? for(q=ss=Grammar[n]+2; *ss !='\0'; ss++);
дальнейшее не очень понятно(

Добавлено через 48 минут


Grammar[n] - элемент массива
Grammar[n]+2 - правая часть элемента после :
Не пойму что происходит в третьем цикле помогите пожалуйста(
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru