Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Цикл for в циклах с параметром




Проанализируйте работу цикла for на следующих примерах:

 

//пример 66.

for(unsigned i = 5; i--;)

       cout << i << endl;       //4 3 2 1 0 !!!

 

for(unsigned i = 5; --i;)

       cout << i << endl;           //4 3 2 1 !!!

int x, y;

for (y = 1; y < 10; ++y) x = y; 

       printf ("%d %d\n", x, y);    //9 10

 

int x, y;

for (y = 1; (x = y) < 10; ++y); printf ("%d %d\n", x, y); //10 10

 

int x, y;

for (x = 0, y = 1000; y > 1; ++x, y /= 10)
                        printf ("%d %d\n", x, y);        //0 1000
                                                                                                                         //1 100
                                                                                                                         //2 10

int x, y;

for (x = 0, y = 1000; y > 1; x++, y /= 10);

printf ("%d %d\n", x, y);                                //3 1

Генерирование случайных чисел

Генерирование случайных целых чисел

//пример 67.

#define _USE_MATH_DEFINES

#include <math.h>                     

int main()

{

int i;

for (i = 0; i < 10; i++)     

             printf ("%d\n", rand ());

_getch();

return 0;

}

//пример 68.

Генерирование случайных целых чисел в заданном диапазоне [k, m+k)

#define _USE_MATH_DEFINES

#include <math.h>                     

int main()

{

int i, k, m;

scanf ("%d%d", &k, &m);

for (i = 0; i < 10; i++)     

             printf ("%4d\n", k+rand() % m);

_getch();     

return 0;

}

 

//пример 69.

Генерирование случайных вещественных чисел в интервале (0.0, 1.0)

#define _USE_MATH_DEFINES

#include <math.h>                     

int main()

{

int i;

printf ("random numbers from 0.0 to 1.0:\n ");

for (i = 0; i < 5; i++)     

    printf ("%lf\n ", ( rand()+0.0 ) /RAND_MAX); 

       // +0.0 обеспечивает приведение типа и затем
          //деление вещественных чисел

_getch();     

return 0;

 }

Результат:

random numbers from 0.0 to 1.0:

  0.001251

 0.563585

 0.193304

 0.808741

 0.585009

 

//пример 70.

Генерирование случайных целых чисел, начиная с заданного числа

//для этого используется функция srand()
#define _USE_MATH_DEFINES

#include <math.h>                     

#include <time.h>   //для функции time()       

int main()

{

int i;

srand(100); //отсчет от 100!!!

printf ("random numbers \n");

for (i = 0; i < 5; i++)     

             printf ("%8d", rand ());

printf ("\nrandom numbers are the same \n");

srand (100); //тот же самый набор случайных чисел

for (i = 0; i < 5; i++)     

             printf ("%8d", rand ());

printf ("\nrandom numbers are the others \n");

 

srand (time(0)); //другой набор, отсчет от календарного времени в секундах !!!

for (i = 0; i < 5; i++)     

             printf ("%8d", rand ());

printf ("\n");

_getch();     

return 0;

}

Результат ( наборы случайных чисел ):

random numbers

365 1216 5415 16704 24504

random numbers are the same

365 1216 5415 16704 24504

random numbers are the others

26545 26201 2521 21152 26986

Вычисление суммы слагаемых натурального ряда

//пример 71.

//вариант_1

const int N =10;

int main ()

 int summa=0;

  for(int i=1; i <=N; i++)

         summa += i;

  cout << summa << endl;                    

 _getch();

 return 0;

}

//вариант _2

const int N=10;

int main ()

 { 

int summa=0;

for(int i = 1; i <= N;)

           summa += i++;

cout << summa << endl;

_getch();

return 0;                

}

 

//вариант _3

const int N=10;

int main ()

for(int i=1, summa = 0; i <=N; cout << summa << endl)

                                           summa += i++;

// cout << summa << endl; error!! Undeclared “ summa ”            

_getch();

return 0;

}

Вычисление суммы слагаемых знакочередующегося ряда

//пример 72.

Найти значение выражения 1.1 – 1.2 + 1.3 – … для  N > 0 слагаемых (знаки чередуются). Условный оператор не использовать.

 

int main ()

{

int N = 10; 

float sign = 1;

float val = 1.1f;

float sum = 0;

for(int i = 0; i < N; ++i)

{

sum += sign*val;

sign *= -1;

val += 0.1f;

}

cout << sum << endl;

_getch();

return 0;

}

Вывод на экран кодов символов

//пример 73.

//цифры

char s;

for (s ='0'; s <= '9'; s++)

            cout << s << " " << static_cast <int> (s) << endl;

 

//латинские буквы
char s;

for (s ='A'; s <= 'Z'; s++)

            cout << s << " " << static_cast <int> (s) << endl;

for (s ='a'; s <= 'z'; s++)

            cout << s << " " << static_cast <int> (s) << endl;

Приостановка выполнения программы на n секунд

//пример 74.

const int DELAY =400000000;

int main ()

{

long i;

int n;

cout << "sec=?\n";

cin >> n;

for (; n; n--)

   for (i = 0; i < DELAY; i++);

cout << n << endl;

_getch();

return 0;                 

}

Получение натуральных делителей числа N

//пример 75.

int main ()

{

 unsigned N;

 cout << " \n input N:"; cin >> N;                   

  for (unsigned i = 2; i <= N / 2; i++) // перебор значений делителей                 

if (!(N % i)) cout << i << " ";     // i есть делитель числа N

 cout << endl;

_getch();

return 0;

}

Проверка, является ли число простым

//пример 76.

int main()

{

int n;

cin >> n;

for (int i = 2; i <= n/2; i++)

if (n % i == 0)

     {cout <<"ne prostoe" << endl; _getch();return 1;}

cout << "prostoe" << endl;

 _getch();

return 0;

 }





Поделиться с друзьями:


Дата добавления: 2018-10-15; Мы поможем в написании ваших работ!; просмотров: 223 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Даже страх смягчается привычкой. © Неизвестно
==> читать все изречения...

4451 - | 4096 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.