Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/12: Рейтинг темы: голосов - 12, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 19
1

Мое знакомство с циклами в С++

10.12.2011, 21:06. Показов 2456. Ответов 38
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток! Свое знакомства с языками начал с Pascal , достаточно неплохо там освоился, вот теперь решил попробовать себя на СИ . и у меня уже серьезные проблемы с синтаксисом. Пока никак не могу перестроиться. Вот например возьмем синтаксис цикла. кусок моей ознакомительной, бесполезной программы, которая по причине моей криворукости не компилируется
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
   int nord;
   char massiv[100];
    int k;
int main()
{
 
 while (nord<100)
 {
 if massiv [nord]<>"0"
 k=k+1;
 ++nord;
  }
 
system("PAUSE");
return 0;  
}
(написано на DEV-C++)
по моей идеи, она должна считать количество не нулей в массиве чаровском.
по моим представлениям о си, вместо привычного для меня бегина и энда в циклах си должны использоваться открывающиеся и закрывающиеся скобочки. А в условие IF нужно ли их использовать?
в многих мануалах видел такую штуку типа endl. Для чего она нужна, если есть скобочки? а синтаксис фора так же должен включать в себя скобочки? если не трудно, прошу растолковать мне как в СИ машина должна понимать начало и конец цикла или условия.
Заранее спасибо и извиняюсь если слишком глупый или часто задаваемый вопрос.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2011, 21:06
Ответы с готовыми решениями:

Знакомство со стеком
Начал изучать принципы работы стека вроде все понятно но не пойму как реализовать такое действие....

Знакомство с функциями
Я новичок в программировании, работаю в среде Dev C++. Вот решила начать изучение функций, и...

Знакомство с указателями. Синтаксическая ошибка.
Доброго дня! В качестве учебного пособия использую &quot;С++ для чайников&quot; Тема: первое знакомство с...

Мое проклятие с vs
мне два года как не везет с компиляторами vs , (как говорится то ресет ,то бсод).недавно установил...

38
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
11.12.2011, 17:14 21
Author24 — интернет-сервис помощи студентам
длина строки
C++
1
std::cout<<strlen (s);
Ввод
C
1
2
fflush (stdin);
gets (s);
0
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
11.12.2011, 17:36 22
Цитата Сообщение от go Посмотреть сообщение
C
1
2
fflush (stdin);
gets (s);
fflush(stdin) - это undefined behaviour.
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
11.12.2011, 17:50 23
Somebody, я знаю, но в компиляторах под виндовс (в студии например, в билдере) все нормально работает
Так вообще ignore лучше
Да и в конце концов,
C
1
void main ()
Это тоже undefined behavior
0
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 19
11.12.2011, 21:05  [ТС] 24
Цитата Сообщение от go Посмотреть сообщение
std::cout<<strlen (s);
очень сильно ругается на эту строчку. parse error before `::'
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
11.12.2011, 21:16 25
doctorclo, не может быть
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <Windows.h>
 
int main(int argc, char* argv[])
{
    char * s = "qwerty" ;
 
    std::cout<<strlen(s);
    std::cout<<std::endl;
 
    system ("pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 19
11.12.2011, 21:29  [ТС] 26
я тоже так думал, но ругается
implicit declaration of function `int system(...)'
я склоняюсь к мнению, что мой Dev-C++ просто сумасшедший.
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
11.12.2011, 21:38 27
doctorclo, http://liveworkspace.org/code/... 6823778c93
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <cstring>
 
int main(int argc, char* argv[])
{
        char *s =  "qwerty"  ;
 
        std::cout<<strlen(s);
 
        return 0;
}
0
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 19
11.12.2011, 22:22  [ТС] 28
Цитата Сообщение от go Посмотреть сообщение
std:
если не трудно, не могли бы объяснить, что означает эта вещь?
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
11.12.2011, 22:40 29
doctorclo, пространство имен
0
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 19
11.12.2011, 23:24  [ТС] 30
а вы не могли бы сказать, какой из компиляторов для C++ лучше выбрать начинающему,чтобы потом не заморачиваться по этому поводу?
0
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
11.12.2011, 23:26 31
Цитата Сообщение от go Посмотреть сообщение
Да и в конце концов,
C
1
void main ()
Это тоже undefined behavior
Это не undefined behaviour, это (если C99) то ли ошибка компиляции
The function called at program startup is named main. The implementation declares no
prototype for this function. It shall be defined with a return type of int...
то ли unspecified behaviour
If the return type is not compatible with int, the
termination status returned to the host environment is unspecified.
- всё же не undefined.
Цитата Сообщение от doctorclo Посмотреть сообщение
implicit declaration of function `int system(...)'
system находится в cstdlib.
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
11.12.2011, 23:42 32
Цитата Сообщение от Somebody Посмотреть сообщение
Это не undefined behaviour, это (если C99) то ли ошибка компиляции
Функция main по стандарту С++ должна возвращать int
void main ведет к undefined behavior

Добавлено через 19 секунд
Цитата Сообщение от Somebody Посмотреть сообщение
system находится в cstdlib.
C++
1
#include <windows.h>
Добавлено через 2 минуты
А лучше почитайте здесь http://www2.research.att.com/~... #void-main
0
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
12.12.2011, 00:31 33
Не вижу ничего про то, что будет. Только написано, что так неправильно - и всё.
Цитата Сообщение от C99
If the return type is not compatible with int, the
termination status returned to the host environment is unspecified.
Не знаю, что ещё кроме кода возврата включается в termination status, но undefined behaviour и тут нету.
Где смотреть?
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
12.12.2011, 17:13 34
Цитата Сообщение от Somebody Посмотреть сообщение
но undefined behaviour и тут нету.
А Вы думаете, что если объявить тип
C
1
void main
то программа ничего не вернет?
0
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
12.12.2011, 20:36 35
Вернёт что-то. Так ведь известно же, что она завершится, только неизвестно, что вернёт. По-моему, это скорее unspecified, чем undefined, разве нет?
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
12.12.2011, 20:41 36
Somebody, если Вы мне не верите, то вот
http://en.wikipedia.org/wiki/Undefined_behavior там сразу же в примерах так и написано. Убедились?
1
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
12.12.2011, 21:15 37
Цитата Сообщение от doctorclo Посмотреть сообщение
а вы не могли бы сказать, какой из компиляторов для C++ лучше выбрать начинающему,чтобы потом не заморачиваться по этому поводу?
Visual Studio 2010 express
0
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
12.12.2011, 21:16 38
Цитата Сообщение от go Посмотреть сообщение
http://en.wikipedia.org/wiki/Undefined_behavior там сразу же в примерах так и написано. Убедились?
Убедился.
В C99 меня сбила с толку фраза "If the return type is not compatible with int, the
termination status returned to the host environment is unspecified". Она, видимо, относится к случаю, когда void main разрешена как implementation-defined.
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
12.12.2011, 21:30 39
Цитата Сообщение от doctorclo Посмотреть сообщение
а вы не могли бы сказать, какой из компиляторов для C++ лучше выбрать начинающему,чтобы потом не заморачиваться по этому поводу?
Удобно работать в visual studio 2010, а так чтобы начать, то лучше, наверное, борланд
0
12.12.2011, 21:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2011, 21:30
Помогаю со студенческими работами здесь

Знакомство с классами, попытка реализации класса матриц
Собственно выдает следующую вещь &quot;Необработанное исключение в &quot;0x00411805&quot; в...

Знакомство с наследованием. Вызов конструктора базового класса
В инете немного почиатл про наследование и решил сразу перейти к практике Есть два класа point и...

Мое видение вызова функции
main() { char *fun( int&amp;, int); int *x, y=11, z; char *s; x=new int (19); s=new char; … }

Мое первое приложение. Начало. Любые компетентные советы
Здравствуйте, уважаемые пользователи, программисты. Моя работа, связанная с...


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

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru