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

Палиндром, блок-схема и алгоритм решения - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
yaStudent
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 35
01.07.2014, 11:55     Палиндром, блок-схема и алгоритм решения #1
Вот готовая, рабочая задача:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
int main()
{
  int d,n=0;
  cin >> d;
  int m=d;
  while(m)
  {
    n*=10;
    n+=m%10;
    m/=10;
  }
  if(n==d)
    cout << ("Yes");
  else
    cout << ("No") << endl;
     return 0;
}
Необходимо описать метод решения математически (слова и формулы), не используя программный код и специальные термины.
Метод решения – это четкое указание действий, которые нужно выполнить. Для вычислительных задач – это формулы. В вашей задаче нужно разбивать число на отдельные разряды, не используя структурированные данные. Для этого нужно выполнять определенные арифметические действия (вычисления) с этим числом. А у вас в методе решения нет ни одной формулы.
Причем метод решения не зависит от языка программирования, от среды разработки. Поэтому в нем и в схеме не должно быть языковых конструкций конкретного языка программирования. Описывайте метод так, как будто сдаете работу преподавателю математики.
Также необходимо составить блок-схему. Вот мой вариант, но в нём отметили ошибки:
Решение не верно. Нужно сравнить все цифры, а не только первую и последнюю.
Ошибки в изображении блоков.
Схема иллюстрирует не программу, а алгоритм решения задачи, поэтому в ней не должно быть вписано никаких языковых фрагментов конкретного языка программирования. Все формулы записываются так, как принято в математике.
Судя по схеме, эта задача тоже решена не верно. Вам нужно разбивать исходное число на отдельные разряды (цифры числа) и сравнивать первую цифру (самый старший разряд) с последней (самый младший разряд), вторую – с предпоследней, третью – с предпредпоследней, и т.д.
Если в каждой из этих пар цифры совпадут, то только тогда число будет палиндромом. Примеры чисел-палиндромов: n1=1234321, n2=3443, n3=111, n4=567765
Миниатюры
Палиндром, блок-схема и алгоритм решения  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2014, 11:55     Палиндром, блок-схема и алгоритм решения
Посмотрите здесь:

Алгоритм (блок-схема) сложения двух чисел в 2 с/с C++
C++ составить алгоритм решения ребуса
C++ Блок схема ( схема алгоритма )
C++ Алгоритм решения задачи
C++ Маска, алгоритм решения
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,051
01.07.2014, 12:03     Палиндром, блок-схема и алгоритм решения #2
Цитата Сообщение от yaStudent Посмотреть сообщение
как объяснить математически работу div mod.
"деление по модулю"
"остаток от деления"
например
123 разделить на 10
получится 12 частное остаток 3
проверяем 12*10+3=120+3=123
значит запись 123%10 == берем остаток от деления на 10 равен 3

жизненный пример

14 часов
делим на 12( полный круг циферблата) получаем 1(после полудня) остаток 2
и говорим 2 часа дня(после полудня)

Добавлено через 5 минут
Цитата Сообщение от yaStudent Посмотреть сообщение
Судя по схеме, эта задача тоже решена не верно. Вам нужно разбивать исходное число на отдельные разряды (цифры числа) и сравнивать первую цифру (самый старший разряд) с последней (самый младший разряд), вторую – с предпоследней, третью – с предпредпоследней, и т.д.
глупость
эта задача( в листинге) решается по другому
число "переворачивается"
т.е младшее становится старшим например 1234 4321 4564 4654
и если перевернутое число равно исходному то это есть палиндром
1221=1221
yaStudent
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 35
16.07.2014, 09:34  [ТС]     Палиндром, блок-схема и алгоритм решения #3
ValeryS, а можно объяснить, что в блок-схеме неверно?
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,334
Завершенные тесты: 1
16.07.2014, 10:29     Палиндром, блок-схема и алгоритм решения #4
В блок-схеме нельзя определять цикл while на манер плюсов. Напишите четко что происходит: m!=0.
yaStudent
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 35
16.07.2014, 10:53  [ТС]     Палиндром, блок-схема и алгоритм решения #5
SatanaXIII, кроме m!=0 ничего не меняется?
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,051
16.07.2014, 11:31     Палиндром, блок-схема и алгоритм решения #6
Цитата Сообщение от yaStudent Посмотреть сообщение
а можно объяснить, что в блок-схеме неверно?
все верно кроме одной мелочи
условия нужно явно указать
т.е вместо m нужно написать m!=0

впрочем SatanaXIII, уже про это сказал
Цитата Сообщение от ValeryS Посмотреть сообщение
глупость
я сказал не про блок схему, а про эти объяснения
Цитата Сообщение от yaStudent Посмотреть сообщение
Решение не верно.
решение верно
Цитата Сообщение от yaStudent Посмотреть сообщение
. Нужно сравнить все цифры, а не только первую и последнюю.
сравнения первой и последней цифра нет, есть сравнение прямого и перевернутого числа

кстати еще один косячек по блок схеме не m=n а d=n
m равно нулю после всех операций цикла, это временная переменная я обычно их обзываю tmp(temp- временная)

d начальное число n перевернутое
вот их и нужно сравнивать

Добавлено через 3 минуты
да и еще не рассмотрел
там написано n=n-m%10???
если да, то неправильно
нужно
n=n+m%10
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,334
Завершенные тесты: 1
16.07.2014, 11:41     Палиндром, блок-схема и алгоритм решения #7
Цитата Сообщение от yaStudent Посмотреть сообщение
Схема иллюстрирует не программу, а алгоритм решения задачи, поэтому в ней не должно быть вписано никаких языковых фрагментов конкретного языка программирования. Все формулы записываются так, как принято в математике.
Кстати глупости. Стремиться к унификации конечно надо. Но ни разу не видел в блок-схемах, чтобы отрицание над булевским выражением обозначалось как черточка сверху. Обычно используют все же символы языка.
yaStudent
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 35
17.07.2014, 07:53  [ТС]     Палиндром, блок-схема и алгоритм решения #8
ValeryS,
в ней не должно быть вписано никаких языковых фрагментов конкретного языка программирования. Все формулы записываются так, как принято в математике
А m%10 - это код С++...
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,051
17.07.2014, 08:13     Палиндром, блок-схема и алгоритм решения #9
Цитата Сообщение от yaStudent Посмотреть сообщение
А m%10 - это код С++...
напиши словами "остаток от деления" или математически mod
http://ru.wikipedia.org/wiki/Mod_(операция)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2014, 08:25     Палиндром, блок-схема и алгоритм решения
Еще ссылки по теме:

Как будет выглядеть блок-схема(алгоритм)? C++
C++ Составить алгоритм решения задачи в виде блок-схемы
C++ Составить алгоритм решения в виде блок-схемы

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

Или воспользуйтесь поиском по форуму:
yaStudent
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 35
17.07.2014, 08:25  [ТС]     Палиндром, блок-схема и алгоритм решения #10
ValeryS, значит записать как m mod 10?
Yandex
Объявления
17.07.2014, 08:25     Палиндром, блок-схема и алгоритм решения
Ответ Создать тему
Опции темы

Текущее время: 05:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru