2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 38
1

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

01.07.2014, 11:55. Показов 7283. Ответов 9
Метки нет (Все метки)

Вот готовая, рабочая задача:
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
Миниатюры
Палиндром, блок-схема и алгоритм решения  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.07.2014, 11:55
Ответы с готовыми решениями:

Алгоритм решения и блок-схема
Program zadfive; uses crt; var k,m,n:extended; d:integer; begin k:=200; d:=0; while...

Сделать алгоритм решения задачи (описание), есть программа и блок схема
Program abc; var a:array of integer; i,temp,change:integer; begin randomize; writeln(‘исходный...

есть блок-схема для решения
есть блок-схема помогите с решениям пожалуйста... очень нужен

Алгоритм и Блок-схема
У меня с ними проблемы...обращаюсь к Вам! 1.Составить блок-схему алгоритма определения значения...

9
Модератор
Эксперт по электронике
8790 / 6575 / 892
Регистрация: 14.02.2011
Сообщений: 23,084
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
1
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 38
16.07.2014, 09:34  [ТС] 3
ValeryS, а можно объяснить, что в блок-схеме неверно?
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
16.07.2014, 10:29 4
В блок-схеме нельзя определять цикл while на манер плюсов. Напишите четко что происходит: m!=0.
1
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 38
16.07.2014, 10:53  [ТС] 5
SatanaXIII, кроме m!=0 ничего не меняется?
0
Модератор
Эксперт по электронике
8790 / 6575 / 892
Регистрация: 14.02.2011
Сообщений: 23,084
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
1
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
16.07.2014, 11:41 7
Цитата Сообщение от yaStudent Посмотреть сообщение
Схема иллюстрирует не программу, а алгоритм решения задачи, поэтому в ней не должно быть вписано никаких языковых фрагментов конкретного языка программирования. Все формулы записываются так, как принято в математике.
Кстати глупости. Стремиться к унификации конечно надо. Но ни разу не видел в блок-схемах, чтобы отрицание над булевским выражением обозначалось как черточка сверху. Обычно используют все же символы языка.
1
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 38
17.07.2014, 07:53  [ТС] 8
ValeryS,
в ней не должно быть вписано никаких языковых фрагментов конкретного языка программирования. Все формулы записываются так, как принято в математике
А m%10 - это код С++...
0
Модератор
Эксперт по электронике
8790 / 6575 / 892
Регистрация: 14.02.2011
Сообщений: 23,084
17.07.2014, 08:13 9
Цитата Сообщение от yaStudent Посмотреть сообщение
А m%10 - это код С++...
напиши словами "остаток от деления" или математически mod
http://ru.wikipedia.org/wiki/Mod_(операция)
1
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 38
17.07.2014, 08:25  [ТС] 10
ValeryS, значит записать как m mod 10?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.07.2014, 08:25
Помогаю со студенческими работами здесь

Блок-схема(Алгоритм)
Помогите составить блок-схему по коду,или подскажите каким должно быть условие Sub b() ...

Алгоритм,блок схема
помогите решить . Найти среднее значение элементов заданного массива М размаром 5. Преобразовать...

Блок схема и словесный алгоритм
Нужна блок схема и словесный алгоритм к процедуре и основной программе Program individ; uses...

Алгоритм, программа, Блок-схема.
1. Дана возрастающая последовательность действительных чисел а1&lt;=а2&lt;=. . . &lt;=а10. Вставить в неё...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru