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

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

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

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Свое знакомства с языками начал с 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.12.2011, 21:06
Ответы с готовыми решениями:

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

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

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

38
 Аватар для CrazyAngel
11 / 11 / 8
Регистрация: 01.12.2011
Сообщений: 33
10.12.2011, 21:25
Цитата Сообщение от doctorclo Посмотреть сообщение
if massiv [nord]<>"0"
во-первых, вместо "<>" в Си используется "!="
во-вторых, условие massiv [nord]<>"0" нужно взять в круглые скобки
фигурные скобки в условии нужны, если у Вас несколько операций. Т.е. в данном примере они не нужны



Цитата Сообщение от doctorclo Посмотреть сообщение
синтаксис фора так же должен включать в себя скобочки?
опять же, скобки нужны если внутри цикла несколько операций
0
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
10.12.2011, 21:27
Правильный вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int main()
{
    char massiv[100];
    int i = 0;
    int count = 0;
 
    while (i < 100)
        if (massiv[i++] != '0')
            count++;
 
    return 0;
}
Читайте книги. Там ведь весь синтаксис описывается.
0
 Аватар для CrazyAngel
11 / 11 / 8
Регистрация: 01.12.2011
Сообщений: 33
10.12.2011, 21:27
Только сейчас заметила, переменные нужно объявлять после int main(). Т.е.
C++
1
2
3
4
int main()
{
    int nord, k;
    char massiv[100];
И нужно задать начальное значение переменной nord
0
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 19
10.12.2011, 21:42  [ТС]
Большое спасибо!
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
10.12.2011, 21:44
C
1
2
3
int i = 0, count = 0;
while (count += massiv[i++] != '0', i < 100);
/* (В каждой шутке есть доля шутки) */
1
10.12.2011, 21:48

Не по теме:

Цитата Сообщение от doctorclo Посмотреть сообщение
C
1
2
#include <iostream> 
#include <string>
doctorclo, в языке Си нет таких заголовков, вы пишите на С++

0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.12.2011, 22:00
Цитата Сообщение от CrazyAngel Посмотреть сообщение
Только сейчас заметила, переменные нужно объявлять после int main().
Не обязательно, просто у ТС они глобальные и инициализируются нулями, в отличие от локальных переменных.
0
 Аватар для CrazyAngel
11 / 11 / 8
Регистрация: 01.12.2011
Сообщений: 33
10.12.2011, 22:23
Thinker, правда? Не знала, спасибо, учту на будущее)
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.12.2011, 22:37
Цитата Сообщение от CrazyAngel Посмотреть сообщение
Thinker, правда? Не знала, спасибо, учту на будущее)
Конечно, правда Только глобальными переменными не всегда удобно пользоваться, они всегда в памяти висят. Переменные бывают автоматическими, регистровыми, глобальными и статическими.
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
10.12.2011, 23:01
Цитата Сообщение от Thinker Посмотреть сообщение
и статическими.
А статические не могут быть глобальные? Глобальные и локальные это их видимость, а все остально классы хранения (памяти)
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.12.2011, 23:03
Цитата Сообщение от go Посмотреть сообщение
А статические не могут быть глобальные? Глобальные и локальные это их видимость, а все остально классы хранения (памяти)
Про классы памяти я и говорю) А статическими могут быть глобальными и локальными. При этом глобальные статические переменные видны только в исходном файле. Но то, что вы уточнили, это хорошо, а то бы и правда, могли меня не так понять.
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
10.12.2011, 23:06
Цитата Сообщение от Thinker Посмотреть сообщение
При этом глобальные статические переменные видны только в исходном файле
В одной единице трансляции.
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.12.2011, 23:08
Цитата Сообщение от fasked Посмотреть сообщение
В одной единице трансляции.

Не по теме:

Ну да-да, хватит придираться, не терминологичен я сегодня))

0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
10.12.2011, 23:09
Цитата Сообщение от Thinker Посмотреть сообщение
А статическими могут быть глобальными и локальными.
А смысл в глобальных статических переменных? Как правило, это локальные.
0
 Аватар для CrazyAngel
11 / 11 / 8
Регистрация: 01.12.2011
Сообщений: 33
10.12.2011, 23:09
Цитата Сообщение от Thinker Посмотреть сообщение
Переменные бывают автоматическими, регистровыми, глобальными и статическими.
Спасибо за разъяснение) Буду знать)
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.12.2011, 23:11
Цитата Сообщение от go Посмотреть сообщение
А смысл в глобальных статических переменных? Как правило, это локальные.
Они отличаются от глобальных тем, что если вы пишите заголовочный файл (модуль), то они не видны там, где ваш модуль подключается, поэтому смысл есть и еще какой
0
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 19
11.12.2011, 16:16  [ТС]
Всем спасибо)
теперь буду знать
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
11.12.2011, 16:22
Цитата Сообщение от doctorclo Посмотреть сообщение
и почему то нолик он не выводит
Выводит
C++
1
std::cout<<mas[2];
0
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 19
11.12.2011, 17:00  [ТС]
Можно еще вопросик?
как можно по-человечески в DEV-C++ посчитать длину строки? компилятор ругается на функцию str, даже если я подключил #include <string>. Не могли бы вы мне объяснить суть оператора str() и как в DEV-C++ можно нормально ввести строку и посчитать ее длину? вводить наверное через scanf
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.12.2011, 17:00
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru