Рейтинг@Mail.ru
Menu
Скачать картинки на телефон бесплатно.
Заставки для телефона, аватарки.
(Вырезать из фотографии)

Роза `Гренд Могул` Яхта `Алиса` Лесное озеро Музей `Пирогово` Белочка
Выберите рубрику (тему)

Тема: Использование управляющих конструкций, С, С++

Программа 2

Цель работы: Получение навычек работы с основными управляющими конструкциями С.

Натуральное число называется полиндромом, если его запись читается одинаково с начала и из конца (например, 4884, 393, 1). Найти все числа-полиндромы, что не превышают 100, и при возведении в квадрат также дают полиндром.

Описание переменных

x int Счетчик цикла
x1 int Число, которое проверяется
x2 int Квадрат числа
y1 int x записанное в обратном порядке
y2 int x2 записанное в обратном порядке

Алгоритм в виде диаграммы действий

Использование управляющих конструкций, С, С++.
Алгоритм в виде диаграммы действий

Текст программы

#include <stdio.h>
#include <math.h>
#include <conio.h>
#define n 100
void main()
{
/* http://nataliya.kiev.ua */
for(int x=1; x<= n ; x++)
  { int x1=x;
    int x2=pow(x,2);
    int y1=0;
    int y2=0;
  while (x2!=0)
      {
      y2=y2*10+x2%10;
      x2/=10;
      if (x1!=0)
      {
        y1=y1*10+x1%10;
        x1/=10;
      } ;
      }
    if (x==y1 && pow(x,2)==y2)
      printf("x=%d; x^2=%d\n",x, int(pow(x,2)));
  } ;
  getch();
}

Результат работы программы

x=1; x^2=1
x=2; x^2=4
x=3; x^2=9
x=11; x^2=121
x=22; x^2=484

Теория к программе

  В языке программирования С используются следующие управляющие конструкции:

1) Цикл for
    for (выражение1; выражение2; выражение3)
      {оператор}
  Выражение1 описывает инициализацию цикла; выражение2 - проверяет условие завершения цикла, если он истинный то выполняется оператор; выражение3 - исчисляется после каждой итерации. Цикл повторяется до тех пор, пока выражение не станет ошибочному.
  Например:

    for(x=1; x<=7; x++)
       printf("%d\n", power(x, 2));

2) Цикл while:
    while (выражение)
    оператор
  Если выражение есть истина, то оператор выполняется до тех пор, пока выражение не станет ошибочным. Если выражение ошибочное с самого начала, то управление передается следующему оператору. При этом цикл не выполняется совсем. Значение выражения определяется до выполнения оператора.
  Например:

    while (k<n) {
      y=y*x; k++;
    }

3) Цикл do-while. Его синтаксис:

    do
      оператор
    while(выражение);
  Если выражение истинное, то оператор выполняется и снова исчисляется значение выражения. Это повторяется, пока выражение не станет ошибочному. Оператор выполняется не меньше одного раза .
  Например:

    x=1;
    do
      printf("%d\n", power(x, 2));
    while(++x<=7);

  Оператор do-while проверяет условие после выполнения операторов цикла.
  Оператор while проверяет условие перед выполнением операторов цикла.
4) Переключатель switch имеет синтаксис:

    switch (выражение) {
      case константа1: оператор
      case константа2: оператор
      case константа3: оператор
      ...
      default: оператор
    }

  Сравнивает значение выражения с константами во всех вариантах case и передает управление оператору, который отвечает значению выражения. Если ни одна из констант не отвечает значению выражения, тогда управления передается оператору с меткой default. Если метка default отсутствующая, не выполняется никаких действий.
  Например:

    switch(x)
      case 2:
      case: y=3;

5) Оператор break перерывает выполнение ближайшего вложенного внешнего оператора switch, while, do или for. Управления передается следующему оператору.
  Например:

    for(i=0; i<n; i++)
      if((a[i] = b[i])==0)
      break;

6) Оператор продолжения continue передает управление на начало ближайшего внешнего оператора цикла switch, while, do или for, и вызывает начало следующей итерации.
7) Оператор возвращения return. Перерывает выполнение текущей функции и возвращает управление программе, которая ее вызвала.
Случайный анекдот

31 декабря. Экзамен в Университете. Накануне принимающий экзамен преподаватель всех студентов обязал явиться для сдачи экзамена не позже 10.00. Время: 12.00. Десяти студентов нет. Преп(преподаватель) весь на нервах - на кафедре уже стол накрыт - все собрались - его ждут. Наконец-то подтянулись опоздавшие.
Преп: Все быстро зашли и взяли билеты!!!
Проходит 5 минут.(В дверь заглядывает голова коллеги с кафедры)
Преп(оглядываясь на дверь) - студентам: Кто-нибудь готов???
В ответ тишина...
Проходит 10 минут.(В дверь заглядывает голова коллеги с кафедры)
Преп(оглядываясь туда же): А сейчас кто-нибудь готов???
В ответ тишина...
Преп (расвирепев): Всем выйти к доске!!!
После того как ничего непонимающие студенты построились в шеренгу у доски, преп подходит к первому и внимательно глядя ему в глаза говорит:
- ТРИ!
Подходит к следующему:
- ЧЕТЫРЕ! И так далее...
- ТРИ!
- ТРИ!
- ЧЕТЫРЕ!
Пройдя всех преп оглядывает всех и спрашивает:
- Вопросы есть???
Один из студентов:
- Есть! Я считаю, что мой ответ заслуживает лучшей оценки, чем три!
Преп: - ДВА!!! ПРИДЕШЬ ПЕРЕСДАВАТЬ ПОСЛЕ ОКОНЧАНИЯ СЕССИИ!!!
Дата: 02-06-2004   Автор: Admin   Подрубрика: Сессия