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

Алгоритмы. Поиск верного решения задачи. - C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 47, средняя оценка - 4.96
IIIa66uMEM6eP
заставил Бендера
 Аватар для IIIa66uMEM6eP
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
06.08.2011, 01:53     Алгоритмы. Поиск верного решения задачи. #1
Крик души. Есть много замечательных книг по программированию, в них часто приводят стандартные алгоритмы. Переработал несколько из них:
Культин_С_С++_в задачах и примерах
Рацеев С.М. Язык Си. Структуры данных и алгоритмы
Седжвик Р. Фундаментальные алгоритмы на C++. (увы не вся.)

Но после прочтения, все равно огромные трудности с алгоритмической частью. Курс программирования дался очень тяжко. Подскажите в каком направлении двигаться, литературу честно говоря читать уже в без толку, когда не могу придумать как найти наибольшую цифру в числе. Конечно можно набрать кучу доп.задач, пробовать решать что то с форума.. Как говорил мой преподаватель: "я в программировании был полный ноль, пока не встретил одну книгу которая и научила программировать" - ведь программирование это не знание языка, а способность находить рациональные решения.
Расскажите, что вам помогло сложить это самое рациональное решение.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6545 / 3965 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
06.08.2011, 01:59     Алгоритмы. Поиск верного решения задачи. #2
практика, практика и еще раз практика, а оптимальность придет с опытом
решайте задачи на форуме, участвуйте в онлайн олимпиадах
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
06.08.2011, 02:01     Алгоритмы. Поиск верного решения задачи. #3
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
не могу придумать как найти наибольшую цифру в числе
тут все просто:
в голову пришло пока 2 простых варианта:
1) Тупо использовать операции "/" и "%" и выделять по одной цифре, что сложнее чем второй способ в поиске максимального;
2) Этими же операциями загонять числа в массив, и далее просто сравнивать, пробегая по нему...
Так же можно вводить число, как строку, и повторять пункт 2

От прочтения кучи книг, умение разбивать задачи на подзадачи, снижая при этом риск запутаться в задаче, не появится... Все дело в практике, ее нужно как можно больше!
Решайте простейшие задачи сначала, только так научитесь думать...
IIIa66uMEM6eP
заставил Бендера
 Аватар для IIIa66uMEM6eP
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
06.08.2011, 02:05  [ТС]     Алгоритмы. Поиск верного решения задачи. #4
Maxwe11, за двоих прошел вузовскую программу... (правда у нас один семестр.)
профита не замечено
Знания остались примерно на том же уровне. Но за мнение спасибо.

Добавлено через 1 минуту
Цитата Сообщение от Mиxaил Посмотреть сообщение
1) Тупо использовать операции "/" и "%" и выделять по одной цифре
так и сделал)
grizlik78
Эксперт С++
 Аватар для grizlik78
1887 / 1419 / 103
Регистрация: 29.05.2011
Сообщений: 2,967
06.08.2011, 02:07     Алгоритмы. Поиск верного решения задачи. #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
Maxwe11, за двоих прошел вузовскую программу... (правда у нас один семестр.)
профита не замечено
Знания остались примерно на том же уровне. Но за мнение спасибо.
Критический уровень, после которого количество переходит в качество, у каждого свой. Видимо порог очередной ступени ещё не достигнут
IIIa66uMEM6eP
заставил Бендера
 Аватар для IIIa66uMEM6eP
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
06.08.2011, 02:08  [ТС]     Алгоритмы. Поиск верного решения задачи. #6
grizlik78, про критический уровень - спасибо) Видимо надо еще третьему лабы нарешать)
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
06.08.2011, 02:11     Алгоритмы. Поиск верного решения задачи. #7
Раньше у меня был такой подход к программированию:
После прочтения нескольких страниц учебного материала, поняв весь смысл, изложенного автором, я садился программировать. Сначала переписывал листинги, изменял их, добавлял свое... хотел понять, как это работает... Затем переходил к новому материалу. И так постепенно я учусь... Вроде, ничего сложного!
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
06.08.2011, 02:15     Алгоритмы. Поиск верного решения задачи. #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
книги читать мало, нужно всегда совмещать это с практикой. если проблемы с решением задач глубже, то либо смириться с тем, что склад ума другой, либо больше заниматься. еще есть интересная книжка, хоть и далекая от программирования, посвященная процессу синтеза идей при решении задач - Дж. Пойя "Математическое открытие. Решение задач: основные понятия, изучение и преподавание"
IIIa66uMEM6eP
заставил Бендера
 Аватар для IIIa66uMEM6eP
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
06.08.2011, 02:55  [ТС]     Алгоритмы. Поиск верного решения задачи. #9
Цитата Сообщение от Paporotnik Посмотреть сообщение
смириться с тем, что склад ума другой, либо больше заниматься
спасибо за мнение, попытка не пытка.

Добавлено через 29 минут
Цитата Сообщение от Mиxaил Посмотреть сообщение
1) Тупо использовать операции "/" и "%" и выделять по одной цифре, что сложнее чем второй способ в поиске максимального;
вот так можно

Не по теме:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <cstdlib>
#include <iostream>
#include <cmath>
#include <clocale>
using namespace std;
 
int main(int argc, char *argv[])
{
    setlocale (LC_CTYPE, "rus");
int number;
cout << "Введите число: " << endl;
cin >> number;
cout << "Ответ: ";
int max = 0;
int buff;
while (number>0) 
{
  buff = number % 10;
  if (buff>max) max = buff;
  number = number / 10;
}
  cout << max << endl;  
  
    system("PAUSE");
    return EXIT_SUCCESS;
}

easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9383 / 5433 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
06.08.2011, 03:22     Алгоритмы. Поиск верного решения задачи. #10
IIIa66uMEM6eP, математику учите. Будет легче с поиском решений. А синтаксис языка программирования выучить в принципе не сложно...
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
06.08.2011, 09:04     Алгоритмы. Поиск верного решения задачи. #11
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
спасибо за мнение, попытка не пытка.

Добавлено через 29 минут

вот так можно

Не по теме:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <cstdlib>
#include <iostream>
#include <cmath>
#include <clocale>
using namespace std;
 
int main(int argc, char *argv[])
{
    setlocale (LC_CTYPE, "rus");
int number;
cout << "Введите число: " << endl;
cin >> number;
cout << "Ответ: ";
int max = 0;
int buff;
while (number>0) 
{
  buff = number % 10;
  if (buff>max) max = buff;
  number = number / 10;
}
  cout << max << endl;  
  
    system("PAUSE");
    return EXIT_SUCCESS;
}

Ваш алгоритм подходит ТОЛЬКО для неотрицательных целых чисел. Ка вы думаете, почему?

Чтобы правильно работал ваш алгоритм, нужно после строки
cin >> number;
добавить строку
number = abs(number);
ValeryLaptev
Эксперт С++
1012 / 791 / 46
Регистрация: 30.04.2011
Сообщений: 1,600
06.08.2011, 09:17     Алгоритмы. Поиск верного решения задачи. #12
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
Крик души.

Но после прочтения, все равно огромные трудности с алгоритмической частью. Курс программирования дался очень тяжко. Подскажите в каком направлении двигаться, литературу честно говоря читать уже в без толку, когда не могу придумать как найти наибольшую цифру в числе. Конечно можно набрать кучу доп.задач, пробовать решать что то с форума.. Как говорил мой преподаватель: "я в программировании был полный ноль, пока не встретил одну книгу которая и научила программировать" - ведь программирование это не знание языка, а способность находить рациональные решения.
Расскажите, что вам помогло сложить это самое рациональное решение.
Применять алгоритмический подход в жизни. При необходимости принять решение по-любому более-менее важному поводу сесть и расписать на бумаге плюсы и минусы. И буквально выписать: если ... то... А если ... то...
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
06.08.2011, 09:30     Алгоритмы. Поиск верного решения задачи. #13
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Применять алгоритмический подход в жизни. При необходимости принять решение по-любому более-менее важному поводу сесть и расписать на бумаге плюсы и минусы. И буквально выписать: если ... то... А если ... то...
Абсолютно верно. И не просто читать примеры в книгах, но и анализировать почему именно так, варьировать задачи, пытаться прокручивать их в голове, строить свои модели, искать свой стиль.

Добавлено через 9 минут
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
Крик души. Есть много замечательных книг по программированию, в них часто приводят стандартные алгоритмы. Переработал несколько из них
...
Но после прочтения, все равно огромные трудности с алгоритмической частью.
Что-то я сомневаюсь, что вот прям так взяли и переработали эти 3 книги. Если бы это было так, то ваша тема звучала бы более профессионально. Признайтесь, вы просто сидели и быстро на кнопку Page Down нажимали и колесико мышки быстро крутили. Вы даже первую (самую простую книжку) не читали, не смотрели задачки в ней.

И что значит "стандартные" алгоритмы. Это еще раз доказывает, что вы совсем эти книги не читали. Во 2 и 3 книгах ДАЛЕКО не стандартные алгоритмы. А уж про 3 книжку я совсем промолчу. Чтобы все там понять время нужно, она уже для более опытных программистов.
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
06.08.2011, 11:47     Алгоритмы. Поиск верного решения задачи. #14
Порешайте =)
Практика - лучший способ.

Добавлено через 2 минуты
Цитата Сообщение от Olga_ Посмотреть сообщение
Ваш алгоритм подходит ТОЛЬКО для неотрицательных целых чисел. Ка вы думаете, почему?

Чтобы правильно работал ваш алгоритм, нужно после строки
cin >> number;
добавить строку
number = abs(number);
А не проще ли немного изменить условие?
C++
1
while (number > 0)
на
C++
1
while (number)
И применять abs к цифрам.
Мало ли, вдруг исходное число еще понадобится.
IIIa66uMEM6eP
заставил Бендера
 Аватар для IIIa66uMEM6eP
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
06.08.2011, 11:53  [ТС]     Алгоритмы. Поиск верного решения задачи. #15
Цитата Сообщение от Olga_ Посмотреть сообщение
Вы даже первую (самую простую книжку) не читали, не смотрели задачки в ней.
очень критично и не обосновано. хотя ваше мнение - думайте как хотите.
Цитата Сообщение от Olga_ Посмотреть сообщение
Во 2 и 3 книгах ДАЛЕКО не стандартные алгоритмы. А уж про 3 книжку я совсем промолчу. Чтобы все там понять время нужно, она уже для более опытных программистов.
1,2 успешно пройдены, далеко? ну ну. 3 я описал в посте - что не она увы не вся. Это не значит что я решил каждую задачу в книге - и я бы очень удивился увидев человека, который решал.

Добавлено через 1 минуту
diagon, отличный сайт) но большинство уже решал.
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
06.08.2011, 11:56     Алгоритмы. Поиск верного решения задачи. #16
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
diagon, отличный сайт) но большинство уже решал.
Их там 600 штук, большинство - это по крайней мере более 300 =)
А если более 300 задач там решить, то таких вопросов возникать не должно
grizlik78
Эксперт С++
 Аватар для grizlik78
1887 / 1419 / 103
Регистрация: 29.05.2011
Сообщений: 2,967
06.08.2011, 12:04     Алгоритмы. Поиск верного решения задачи. #17
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
diagon, отличный сайт) но большинство уже решал.
А там и второй раз решить не запрещается Нетривиальная задача имеет, как правило, более одного способа решения. Часто много более. Так что решать можно и уже решённые задачи, но подходя с другой стороны.
IIIa66uMEM6eP
заставил Бендера
 Аватар для IIIa66uMEM6eP
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
06.08.2011, 12:09  [ТС]     Алгоритмы. Поиск верного решения задачи. #18
Цитата Сообщение от diagon Посмотреть сообщение
Их там 600 штук, большинство - это по крайней мере более 300
уговорили)) я первые штук 15 знакомых увидел)
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
06.08.2011, 12:20     Алгоритмы. Поиск верного решения задачи. #19
Цитата Сообщение от diagon Посмотреть сообщение
Порешайте =)
Практика - лучший способ.

Добавлено через 2 минуты

А не проще ли немного изменить условие?
C++
1
while (number > 0)
на
C++
1
while (number)
И применять abs к цифрам.
Мало ли, вдруг исходное число еще понадобится.
Совсем не проще. Лучше в новую переменную модуль прежней записать и с ней работать, чем abs много раз вызывать (предположим, что когда-нибудь числа можно будет много-много разрядные хранить), число итераций сильно увеличится.

Добавлено через 1 минуту
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
очень критично и не обосновано. хотя ваше мнение - думайте как хотите.
Я ничего плохого о вас не думаю, все с юмором сказано, уж больно лихо вы все перелопатили.

Добавлено через 2 минуты
Цитата Сообщение от diagon Посмотреть сообщение
Их там 600 штук, большинство - это по крайней мере более 300 =)
А если более 300 задач там решить, то таких вопросов возникать не должно
А можно адресом сайта поделиться?

Добавлено через 3 минуты
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
3 я описал в посте - что не она увы не вся.
Могу поделиться, куда вам скинуть?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.08.2011, 12:25     Алгоритмы. Поиск верного решения задачи.
Еще ссылки по теме:

Нужны задачи для решения C++
C++ не знаю решения задачи в c ++
Написать программу решения системы тригонометрических уравнений (разветвляющиеся алгоритмы) C++
C++ Алгоритм решения задачи

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

Или воспользуйтесь поиском по форуму:
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
06.08.2011, 12:25     Алгоритмы. Поиск верного решения задачи. #20
Цитата Сообщение от Olga_ Посмотреть сообщение
А можно адресом сайта поделиться?
Он прямо в посте, который вы процитировали =)

Добавлено через 1 минуту
Цитата Сообщение от Olga_ Посмотреть сообщение
чем abs много раз вызывать (предположим, что когда-нибудь числа можно будет много-много разрядные хранить), число итераций сильно увеличится.
Да ну, там одна проверка всего...
C++
1
#define abs(x) ( (x) < 0 ? -(x) : (x) )
Yandex
Объявления
06.08.2011, 12:25     Алгоритмы. Поиск верного решения задачи.
Ответ Создать тему
Опции темы

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