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

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

Войти
Регистрация
Восстановить пароль
 
vasapetrenko
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 15
#1

Не понятно пару команд в программе. - C++

25.09.2012, 15:46. Просмотров 481. Ответов 11
Метки нет (Все метки)

Есть программа, и мне не понятно пару команд, кому не трудно, опишите их принцип работы! Очень нужно! Благодарностью заранее!)
Вот программа:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<iostream>
#include<conio.h>
using namespace std;
void main()
{
    setlocale(LC_ALL, "ukrainian");
    cout<<"Введiть рiк\n";
    int year=0;
    cin>>year;
    char* animalName[12]={"щура","корови","тигра","зайця","дракона","змiї","коня","вiвцi","мавпи","курки","собаки","свинi"};
    cout<<"Рiк "<<year<<" являється роком  "<<animalName[(year-1984)%12];
    getch();
}
Как работают вот эти операторы и команды:char* animalName[12]={"щура",..."свинi"};,

<<animalName[(year-1984)%12];<---И подробней как работает вот это!

и это особенно (year-1984)%12
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2012, 15:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не понятно пару команд в программе. (C++):

Не понятно пару моментов - C++
В целом программа поняла, но нужно кое-что уточнить! Зачем мы str присвоили strtok(b, &quot; &quot;); ? зачем в islower(str) стоит str ? И...

Выполнение консольных команд в программе - C++
Приветствую! Заранее сори за абстракцию вопроса. Есть интерпретатор int.exe через консоль с ним можно взаимодействовать следующим...

Выполнение консольных команд в программе и получение результата их работы - C++
Есть такая задача, есть клиент и есть сервер, клиент посылает одну из команд cd,dir,mkdir, а сервер обробатывает и возвращает результат...

как i двигается понятно но вот не понятно как это делает j ? - C++
Здравствуйте, вопрос очень глупы но все же есть цикл for (int i = 0,j = 0; i &lt; source.length; i++) как i двигается понятно но вот не...

Создайте функцию, которая пару последовательных чисел Фибоначчи преобразует в следующую пару - C++
Создайте функцию, которая пару последовательных чисел Фибоначчи преобразует в следующую пару. Например, исходные данные: 1,2; результат:3,5

Преобразовать строку, удалив из нее каждую пару символов ‘<<’ и повторив каждую пару символов ‘>>’. - C++
В веденной пользователем строке, найти все вхождения подстроки и заменить ее на другую. Прошу помощи!

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Рыжий Лис
Просто Лис
276 / 223 / 61
Регистрация: 17.05.2012
Сообщений: 930
Записей в блоге: 4
25.09.2012, 15:58 #2
Цитата Сообщение от vasapetrenko Посмотреть сообщение
и это особенно (year-1984)%12
здесь берется остаток от деления на 12 от (year-1984)
DiffEreD
1430 / 767 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
25.09.2012, 16:00 #3
C++
1
2
char* animalName[12]={"щура",..."свинi"}; //массив указателей на строки
animalName[(year-1984)%12]; // (year-1984)%12 в зависимости от значения year будет выбрана строка из массива с индексом от 0 до 12
Рыжий Лис
Просто Лис
276 / 223 / 61
Регистрация: 17.05.2012
Сообщений: 930
Записей в блоге: 4
25.09.2012, 16:03 #4
Цитата Сообщение от yuron_477 Посмотреть сообщение
с индексом от 0 до 12
поправлю... до 11

Добавлено через 25 секунд
всего 12 элементов
vasapetrenko
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 15
25.09.2012, 16:21  [ТС] #5
char* <----и можно еще об этом пару слов))
Рыжий Лис
Просто Лис
276 / 223 / 61
Регистрация: 17.05.2012
Сообщений: 930
Записей в блоге: 4
26.09.2012, 06:18 #6
Цитата Сообщение от vasapetrenko Посмотреть сообщение
char*
это указатель на массив символов (на строку)

Добавлено через 3 минуты
C++
1
2
  char* abc = "0123";
   char cde[] = {'0','1','2','3'};
здесь все переменные равны
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
26.09.2012, 06:28 #7
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
здесь все переменные равны
Ой ли?
в одной строка
в другой набор символов
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
26.09.2012, 06:52 #8
ValeryS, Ага, причем первый пример
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
char* abc = "0123";
есть UB, и компиляторы не должны данный код допускать.
ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
26.09.2012, 09:22 #9
Toshkarik, UB это попытка изменения данных в строковом литерале. Хотя конечно хотелось, чтобы компиляторы не пропускали данный код.
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
26.09.2012, 09:41 #10
ForEveR, UB тут попытка присвоить char * - const char *, то есть заведомое снятие константности с константного объекта, а изменение уже и подавно.
Рыжий Лис
Просто Лис
276 / 223 / 61
Регистрация: 17.05.2012
Сообщений: 930
Записей в блоге: 4
26.09.2012, 16:15 #11
Цитата Сообщение от ValeryS Посмотреть сообщение
Ой ли?
в одной строка
в другой набор символов
точно. Так правильней:
C++
1
2
const char* abc = "0123";
char cde[] = {'0','1','2','3','\0'};
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
26.09.2012, 16:33 #12
Рыжий Лис, корректны сами записи, но не
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
здесь все переменные равны
В первом случае указатель на константные данные типа char. Во втором - массив типа char. Между ними достаточно большая разница.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2012, 16:33
Привет! Вот еще темы с ответами:

Дано произвольное количество команд. Нужно найти им пару - C#
Здраствуйте, нужен вложеный универсальный цикл собственно подается на вход произвольное к-во команд нужно найди им пару ( но мне нужен...

Все ли форматы команд можно использовать в СОМ-программе - Assembler
Скажите, пожалуйста, все ли форматы команд можно использовать в СОМ-программе? Если не все (например, из соображений о .model tiny), то...

Не понимаю до конца почему не работает пару вещей в программе. - Assembler
Суть следующая. В первой программе все работает нормально.кроме вывода результата на экран.он выводится как код ASC.а нужно обычным...

Установите правильный порядок команд в программе, и определите, что в ней вычисляется - Pascal ABC
Установите правильный порядок команд в программе, и определите, что в ней вычисляется. Var a, b:array of integer; i, n, k: integer;...


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

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

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