Перейти к содержимому

Фотография

Новые уроки по C++.5 урок.Циклы

автор денис марков

Сообщений в теме: 30

#21 Kirill

Kirill

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 12 Март 2014 - 23:07

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

 

'Lesson 5.exe': Loaded 'C:\Windows\SysWOW64\ntdll.dll', Cannot find or open the PDB file
'Lesson 5.exe': Loaded 'C:\Windows\SysWOW64\kernel32.dll', Cannot find or open the PDB file
'Lesson 5.exe': Loaded 'C:\Windows\SysWOW64\KernelBase.dll', Cannot find or open the PDB file
'Lesson 5.exe': Loaded 'C:\Windows\SysWOW64\msvcp100d.dll', Cannot find or open the PDB file
'Lesson 5.exe': Loaded 'C:\Windows\SysWOW64\msvcr100d.dll', Cannot find or open the PDB file
 
Можно ли что-нибудь с этим сделать? Я пробовал переустановить, чтобы восстановить возможно потерянные файлы, но не помогло.


#22 Алексей

Алексей

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 14 Сентябрь 2014 - 15:55

небольшая поправка к уроку: 2 (или любое другое число) в нулевой степени = 1


  • Андрей это нравится

#23 KSerN

KSerN

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 01 Декабрь 2014 - 21:08

спасибо за уроки. все понятно, я доволен. кроме ваших задач делаю дополнительные для закрепления уроков (Н. Культин. С и С++ в задачах и примерах.) . Но есть кое какие вопросы по поводу ввода-вывода: в уроках мы пользуемся операторами cin и cout. Для перехода на новую строку "\n",  через строку endl, табуляция \t. В вышеуказанном учебнике вывод организован с помощью printf(), т. е. мне невсе понятно. Вопрос: составление таблицы умножения Пифагора.

 

#include <iostream>
#include <conio.h>
#include <cmath>
using namespace std;
int main()
{
setlocale(LC_ALL , "Russian");
 
cout << "\t *** Taблица Пифагора ***\n" << endl;
cout << "     1     2     3     4     5     6     7     8     9     10\n";

for (int i=1; i<=9; i++)
{
 cout << " " << i << "    ";
   for (int j=1; j<=10; j++)
   {
    cout << i * j << "     ";  
   }
   cout << endl;
}
_getch();
return 0;
}

 

код работает, но вывод таблицы неровный. Какими способами можно сделать вывод четко по столбцам, как в задачнике

 

   1   2   3   4   5   6   7   8   9 10
1 1   2   3   4   5   6   7   8   9 10
2 2   4   6   8 10 12 14 16 18 20
3 3   6   9 12 15 18 21 24 27 30
4 4   8 12 16 20 24 28 32 36 40
5 5 10 15 20 25 30 35 40 45 50
6 6 12 18 24 30 36 42 48 54 60
7 7 14 21 28 35 42 49 56 63 70
8 8 16 24 32 40 48 56 64 72 80
9 9 18 27 36 45 54 63 72 81 90  Основываемся на уроках, которые прошли (без массивов, таблиц и т.д.)  заранее благодарен за ответ.



#24 Elmar

Elmar

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 27 Февраль 2015 - 11:40

У меня вопрос такой.... вот ладно мы ставим знаки "+" , "-" , "*" , "/". И система сама решает в себе.

 

например : С = A+B

 

а тут "C" ставишь , и он уже решил.

 

А вот в самом основе где он находится , почему он совершает такое действие ????? Как все это происходит.

Буду рад если кто нибудь даст точный ответ. Спасибо .



#25 Elmar

Elmar

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 27 Февраль 2015 - 13:30

#include <iostream>
#include <conio.h>
#include <climits>
#include <cmath>

using std::endl;
using std::cout;
using std::cin;
using std::ios_base;
using std::istream;

int main()
{

setlocale(LC_ALL , "russian");

double a,b;
char Operator;
char Koren;


cout << "kalkulator" << endl;
cin >> a >> Operator >> b;

cout << "rezultat:  " ;
switch(Operator)
{
	case '+':    cout << a+b << endl ; break;
	case '-':    cout << a-b << endl ; break;
	case '*':    cout << a*b << endl ; break;
	case '/':    cout << a/b << endl ; break;
	
	default: cout << "Neverno" << endl;
}

cin >> a >> Koren;
switch(Koren)
{
case 'K': cout << sqrtl(a) << endl ; break;
}

	_getch();
	return 0;

}

Еще такой нюанс. До конца первого СВИТЧА , все как у вас... как вы видите затем я добавил еще один СВИТЧ для корня. Как вы поняли действие корня будет задействован после обычных решений( +,-,*,/ ).....

 

И .... Как можно сделать так чтобы с начала, можно было совершить и корень и обычные действия... Надеюсь вы поняли . 



#26 Андрей

Андрей

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 20 Июнь 2015 - 22:00

Денис, так и не смог понять - как работает цикл внутри цикла.

Мой вопрос - как правильно происходит выполнение цикла?

То есть  для i=1 производится цикл с j от 1 до 10, потом i=2 и производится цикл с j от 1 до 10 и т.д.

Или для i=1  и j=1 производится cout << i * j << "     ";, потом i=2  и j=2 и производится производится cout << i * j << "     "; и т.д.

Вот элементарный пример, взятый из листинга Ксерна выше на два поста.

for (int i=1; i<=9; i++)
{
 cout << " " << i << "    ";
   for (int j=1; j<=10; j++)
   {
    cout << i * j << "     ";  
   }
   cout << endl;
}

Просто застрял я в этом цикл в цикле (((((



#27 uchin

uchin

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 08 Сентябрь 2015 - 18:12

Добрый день, Денис,

 

Могли бы пояснить зачем в задаче про зёрна в конце тела второго for дописали pow = 1  ? Ведь в таком случае в начале тела (где   pow *=2; ) каждый раз на 2 будет умножаться единица (раз её присвоили в конце).

 

//Фрагмент задачи

    const int N = 64; //kletok na saxmatnom pole
    unsigned long long rezultat = 1,pow = 1;

    for(int i(1); i <= 64; i++)
    {
        for(int j(0); j < i; j++)
            pow *=2;
        cout << "V summe na " << i << " kletke prixoditsa " << rezultat << " zeren!\n";
        rezultat += pow;
        pow = 1;
    }



#28 odesak

odesak

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 01 Октябрь 2015 - 00:55

Я не программист, но вроде разобрался. Особенность цикла FOR (синтаксическая) в том, что в случае, если оператор (то, что выполняется) ОДИН, то он не заключается в {}. Следовательно, действие 2-го цикла распространяется только включительно до строчки pow *2. Соответственно, после каждого выполнения этого 2-го цикла программа запоминает число POW, равное умноженному на 2 указанное количество раз. После вычисления RESULTAT, POW возвращается в единицу, поскольку при каждом изменении "і" в первом цикле, второй цикл считается с единицы. 

Буду рад, если кто-нибудь из "спецов" прокомментирует мои мысли. Спасибо    



#29 odesak

odesak

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 01 Октябрь 2015 - 01:00

Для поста выше через один. 

 

Для і = 1, второй цикл выполняется для j = 1.

Для  і = 2, второй цикл выполняется для j = 1, потом для j = 2.

И т.д.

Я так понял...



#30 Дима

Дима

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 04 Февраль 2016 - 16:01

Добрый день.

Вопрос по дз со степенями. В степени 31 выдает отрицательное число, затем остальные равняются 0. Что можно сделать?



#31 koshes

koshes

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 20 Июль 2017 - 12:11

#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
setlocale(LC_ALL, "Russian");

int a,b,c;

cout << "Введите два числа: ";
cin >> a >> b;

c = a * b;

do
{
if (a > B)
{
a %= b;
}

else
{
b %= a;
}
}
while (a != 0 && b!= 0);

cout << "НОД: " << (a + B) << endl;

cout << "НОК: " << c/(a+B) << endl;

_getch();
return 0;
}


Мой вариант нахождения НОД и НОК





Темы с аналогичным тегами автор денис марков