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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 47, средняя оценка - 4.96
IIIa66uMEM6eP
заставил Бендера
436 / 292 / 10
Регистрация: 05.12.2010
Сообщений: 1,646
Записей в блоге: 6
#1

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

06.08.2011, 01:53. Просмотров 5984. Ответов 79
Метки нет (Все метки)

Крик души. Есть много замечательных книг по программированию, в них часто приводят стандартные алгоритмы. Переработал несколько из них:
Культин_С_С++_в задачах и примерах
Рацеев С.М. Язык Си. Структуры данных и алгоритмы
Седжвик Р. Фундаментальные алгоритмы на C++. (увы не вся.)

Но после прочтения, все равно огромные трудности с алгоритмической частью. Курс программирования дался очень тяжко. Подскажите в каком направлении двигаться, литературу честно говоря читать уже в без толку, когда не могу придумать как найти наибольшую цифру в числе. Конечно можно набрать кучу доп.задач, пробовать решать что то с форума.. Как говорил мой преподаватель: "я в программировании был полный ноль, пока не встретил одну книгу которая и научила программировать" - ведь программирование это не знание языка, а способность находить рациональные решения.
Расскажите, что вам помогло сложить это самое рациональное решение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.08.2011, 01:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Алгоритмы. Поиск верного решения задачи. (C++):

Алгоритмы для решения - C++
Через какие алгоритмы можно реализовать эти две задачи.

Написать программу решения системы тригонометрических уравнений (разветвляющиеся алгоритмы) - C++
Здравствуйте уважаемые форумчане, требуется ваша помощь. Я немного затрудняюсь в написании кода разветвляющихся алгоритмов, очень прошу...

Задачи на циклические алгоритмы - C++
Помогите пожалуйста сделать в с++: 1)Написать функцию, которая по целому a вычисляет и возвращает максимальное n, при котором n! ≤ a. ...

не знаю решения задачи в c ++ - C++
п. 5.18 Правил Запрещено размещать задания и решения в виде картинок и других файлов с их текстом. Внизу страницы есть редактор формул ...

Алгоритм решения задачи - C++
Помогите пожалуйста сделать алгоритм по коду, из блоков и стрелочек Вот код: //Библиотека контейнера #include<list> //Библиотека...

Алгоритм решения задачи - C++
Есть вот такая вот задача . На дороге в некоторых местах разбросаны золотые монеты. Для каждой монеты известно ее местоположение, которое...

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

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

Добавлено через 1 минуту
Цитата Сообщение от Mиxaил Посмотреть сообщение
1) Тупо использовать операции "/" и "%" и выделять по одной цифре
так и сделал)
0
grizlik78
Эксперт С++
1956 / 1449 / 115
Регистрация: 29.05.2011
Сообщений: 3,007
06.08.2011, 02:07 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
Maxwe11, за двоих прошел вузовскую программу... (правда у нас один семестр.)
профита не замечено
Знания остались примерно на том же уровне. Но за мнение спасибо.
Критический уровень, после которого количество переходит в качество, у каждого свой. Видимо порог очередной ступени ещё не достигнут
3
IIIa66uMEM6eP
заставил Бендера
436 / 292 / 10
Регистрация: 05.12.2010
Сообщений: 1,646
Записей в блоге: 6
06.08.2011, 02:08  [ТС] #6
grizlik78, про критический уровень - спасибо) Видимо надо еще третьему лабы нарешать)
0
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
06.08.2011, 02:11 #7
Раньше у меня был такой подход к программированию:
После прочтения нескольких страниц учебного материала, поняв весь смысл, изложенного автором, я садился программировать. Сначала переписывал листинги, изменял их, добавлял свое... хотел понять, как это работает... Затем переходил к новому материалу. И так постепенно я учусь... Вроде, ничего сложного!
0
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
06.08.2011, 02:15 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
книги читать мало, нужно всегда совмещать это с практикой. если проблемы с решением задач глубже, то либо смириться с тем, что склад ума другой, либо больше заниматься. еще есть интересная книжка, хоть и далекая от программирования, посвященная процессу синтеза идей при решении задач - Дж. Пойя "Математическое открытие. Решение задач: основные понятия, изучение и преподавание"
3
IIIa66uMEM6eP
заставил Бендера
436 / 292 / 10
Регистрация: 05.12.2010
Сообщений: 1,646
Записей в блоге: 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;
}

0
easybudda
Модератор
Эксперт CЭксперт С++
9662 / 5611 / 952
Регистрация: 25.07.2009
Сообщений: 10,774
06.08.2011, 03:22 #10
IIIa66uMEM6eP, математику учите. Будет легче с поиском решений. А синтаксис языка программирования выучить в принципе не сложно...
1
Olga_
842 / 184 / 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);
2
ValeryLaptev
Эксперт С++
1041 / 820 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
06.08.2011, 09:17 #12
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
Крик души.

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

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

И что значит "стандартные" алгоритмы. Это еще раз доказывает, что вы совсем эти книги не читали. Во 2 и 3 книгах ДАЛЕКО не стандартные алгоритмы. А уж про 3 книжку я совсем промолчу. Чтобы все там понять время нужно, она уже для более опытных программистов.
0
diagon
Higher
1929 / 1195 / 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 к цифрам.
Мало ли, вдруг исходное число еще понадобится.
1
IIIa66uMEM6eP
заставил Бендера
436 / 292 / 10
Регистрация: 05.12.2010
Сообщений: 1,646
Записей в блоге: 6
06.08.2011, 11:53  [ТС] #15
Цитата Сообщение от Olga_ Посмотреть сообщение
Вы даже первую (самую простую книжку) не читали, не смотрели задачки в ней.
очень критично и не обосновано. хотя ваше мнение - думайте как хотите.
Цитата Сообщение от Olga_ Посмотреть сообщение
Во 2 и 3 книгах ДАЛЕКО не стандартные алгоритмы. А уж про 3 книжку я совсем промолчу. Чтобы все там понять время нужно, она уже для более опытных программистов.
1,2 успешно пройдены, далеко? ну ну. 3 я описал в посте - что не она увы не вся. Это не значит что я решил каждую задачу в книге - и я бы очень удивился увидев человека, который решал.

Добавлено через 1 минуту
diagon, отличный сайт) но большинство уже решал.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.08.2011, 11:53
Привет! Вот еще темы с ответами:

Нужны задачи для их решения - C++
Здравствуйте. Нужны задачи для закрепления изученного материала. Что интересует(с чем я могу работать(база)): &quot;напечатать&quot;, ...

Написать программу на С/С++ решения задачи: - C++
m=min{aij} 1&lt;=i&lt;=n 1&lt;=j&lt;=n

Не могу понять решения задачи - C++
Звучит она так: Составить программу, которая создаёт файл и записывает в него 5 введеных целых чисел. Надеюсь на помощь (и целое...

Проблемы с алгоритмом решения задачи - C++
Нужно написать алгоритм решения задачи. Т.е. что и как делает прога, желательно построчно, ну или близко к этому. Собственно задача: ...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
06.08.2011, 11:53
Ответ Создать тему
Опции темы

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