Перейти к содержимому

Фотография

НАЧИНАЮЩИЙ ПРОГРАММИСТВ помощь начинающему программисту....


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 447

#161
yedyge

yedyge
  • Свой человек
  • 879 сообщений


я обосновал общее решение (включая 0, 00, 010) имхо достаточно математически.

Ваше "общее решение", увы, оказалось неправильным. Да его для разработки программы вообще-то и не требуется.

Здесь требуется не "математическое обоснование общего решения", а несложная программка (как было указано, можно на любом языке программирования), которая просто перебирает все натуральные числа, начиная от 1 и до определенного N, заданного пользователем. И если очередное число - палиндром, то программка просто увеличивает свой счетчик на единицу. По достижении значения N выводит значение счетчика пользователю. Все!

увы вам!
http://vse.kz/index....c...&p=10386454
требуется именно матметод, перебор запрещается.

общий матметод, включая палиндромы 0, 010 я дал. явно два раза оговорил, что решение включает 0, 010.
не понимаю вашей претензии.

кроме того ваше описание даёт сложность N, а моё таки порядка log10(N), что имхо эффективнее.
  • 0

#162
hes

hes
  • В доску свой
  • 1 567 сообщений


для этого существует как минимум техническое задание, что, как и почему должно все работать.
программист действует согласно ТЗ, сисадмин - согласно условиям эксплуатации продукта, конечный пользователь - согласно инструкции по работе с программой.
все рамки и зоны ответственности должны быть четко очерчены.


Эх, если бы это было где-то четко прописано. Что-то типа непререкаемого свода правил, типа Библии, ниспосланной нам свыше. Пока пишутся техзадания, чаще всего, на этом этапе мало кто себе представляет, в каком виде будет окончательный продукт... И если программист недоработал интерфейс, а пользователи не могут в этом интерфейсе разобраться (это как на табличках туалета вместо М и Ж поставить К и Ц, попробуй догадайся), если программист не продумал все возможные действия пользователя, не снабдил подсказками и понятной помощью - конечно, он будет оправдываться, что пользователь "тупой" и неквалифицированный.

Правильно сказала девушка. Надо не разделять работу на свою и чужую, а работать. И помогать в работе друг другу. А то привыкли перекладывать друг на друга обязанности.


курите нормативную документацию, ГОСТы, СТ РК наконец....
пора бы уже завязывать с кустарными методами разработки программного обеспечения.
про разделять я не говорил - тут методы и принципы работы совсем другие.
простейший план выглядит например так:
1. общая архитектура системы - ее модули, общий принцип работы всей системы.
2. межмодульные, межсистемные взаимосвязи и механизмы.
3. обработка регламентированных системных ошибок.
4. работа оператора - читай пользователя (бухгалтер, сисадмин, спецперсонал - все операторы) - как следствие обработка пользовательских ошибок например с фиксацией этой ошибки в системе - пусть потом админы разбирают.
5. и прочая, прочая, прочая ...

все это разрабатывается вначале в виде схем, проектов. бумаги и тп - остальное кодируется непосредственно разработчиком - согласно все той же составленной технологом документации по системе, предварительно согласованной со всеми заинтересованными сторонами - от и до.
интерфейс - максимально минималистический, извиняюсь за каламбур, но это так. куча никому не известных окошек, надписей, кнопочек и переключателей нахрен никому не упала - мозолит лишний раз глаза, лишь только то, что действительно необходимо.
плюс, любой пользователь должен иметь гарантию, что проделав одно и то же действие, не зависящее от времени, должно выполнять одну и ту же операцию, в любой другой момент времени, если нет - передача вида ошибки программисту - все нормально решается и работа идет в обычном режиме.
работа это процесс, зачем тут эмоции :rotate: хотя конечно они есть всегда :-)
  • 0

#163
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

увы вам!
http://vse.kz/index....c...&p=10386454
требуется именно матметод, перебор запрещается.

1. Никакого "матметода" вы не дали. Пытались, правда, подсчитать, сколько максимум палиндромов может быть у 1-, 2-, 3- и 4-значных чисел. Это не то, что требовалось по условию. Хотя даже и это у вас получилось неправильно.

2. Где в этой вашей ссылке сказано "перебор запрещается"? :rotate: Там говорится "без переворачивания строк", а не "без перебора чисел". Вам это не понятно?

общий матметод, включая палиндромы 0, 010 я дал. явно два раза оговорил, что решение включает 0, 010.
не понимаю вашей претензии.

Опять вы за свое. В который раз повторяю, что по условию 0 вообще не должен был рассматриваться в решении. Только натуральные числа от 1 до N включительно (N задает пользователь программы). А числа "010" вообще не бывает. Есть натуральное число 10. И оно, конечно, никакой не палиндром.

кроме того ваше описание даёт сложность N, а моё таки порядка log10(N), что имхо эффективнее.

Вы не представили программки даже и со сложностью N. О какой еще эффективности ваши рассуждения? Покажите для произвольного числа, как будете определять, является ли это число палиндромом?
  • 0

#164
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

Delphi:

uses math;

function PCount(Num : Int64): Int64;
var
i,len,a,b, col : Integer;
begin
a := 1;
b := 1;
col := 0;
len := Trunc(Log10(Num))+1;
for i := 1 to len - 1 do
begin
col := col + a * 9;
if (i mod 2) = 0 then
a := a * 10
else
b := b * 10;
end;
result := col + (Num div a) - b + 1;
end;

Наконец-то, первая программа! Теперь ждем реакции господина Gavana, который дал условие задачи. Если конечно, он еще не потерял надежду, что программка таки будет написана. (А может, уже не надеется и вообще не видит смысла заходить в данную тему).

В любом случае, интересны отклики на это решение! Сам я проверить не могу - не знаю Delphi, и вообще нет этой системы у меня компьютере. Дает ли эта программа правильные результаты на конкретных примерах? Какие результаты выдает эта программа для разных Num. Например, для 99? 256? 667? 999? 1001? 1024? Или еще какие-нибудь числа (на ваше усмотрение).
  • 0

#165
Big Joe

Big Joe
  • Постоялец
  • 316 сообщений
Пропустил числа Visual1 через свою функцию, результаты вроде бы правильные:

N=99, f = 99
N=101, f= 19
N=256, f = 34
N=667, f = 75
N=999, f = 108
N=1001, f = 109
N=1024, f = 111
  • 0

#166
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

Пропустил числа Visual1 через свою функцию, результаты вроде бы правильные:

N=99, f = 99
N=101, f= 19
N=256, f = 34
N=667, f = 75
N=999, f = 108
N=1001, f = 109
N=1024, f = 111

Первый результат (N = 99, f = 99) неправильный. Как может быть такая большая разница при двух близко расположенных N = 99 и N = 101? Ну хорошо, наверное, вы вручную переносили сюда результаты, это просто опечатка (должно быть 18).

Последний результат (N = 1024, f = 111) тоже неправильный. Ведь при N = 1001 и N = 1024 даже на глаз видно, что между между этими двумя числами нет никаких палиндромов.

Остальные результаты правильные. По крайней мере, у меня получились такие же.

Давайте также попробуем на более крупных числах. Например, 53535 и 53536, и еще 99999 и 100000.
  • 0

#167
Big Joe

Big Joe
  • Постоялец
  • 316 сообщений
Да, точно, совсем запарился в конце дня. Функция определенно не правильно работает, или работает не всегда правильно. Что-то где-то упустил, если кто найдется пусть подправит где, что не правильно.

Касательно больших чисел, результаты работы ф-и:

53535, f=634
53536, f=634
99999, f=1098
100000, f=1098
  • 0

#168
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений
В этот раз у нас результаты полностью совпали!
:rotate:
  • 0

#169
Big Joe

Big Joe
  • Постоялец
  • 316 сообщений
Надеюсь такие задачи не будут давать на собеседовании студентам :rotate:
  • 0

#170
Игорь96

Игорь96

    Читатель

  • Гость
  • 12 сообщений
а кому нетрудно меня научить програмированию или научить чонибуть напишите в личку или на E-MAIL igor96-96-96@bk.ru
  • 0

#171
smug

smug
  • Свой человек
  • 513 сообщений
игорь тебе 13? лет хочеш стать хакером?
  • 0

#172
Random

Random

    Visca!

  • В доску свой
  • 3 908 сообщений
СЗОТ
hes, он же оскарег, ты че тут делаешь в теме начинающих программистов ?)
ты же кодер со стажем :rotate:
  • 0

#173
Random

Random

    Visca!

  • В доску свой
  • 3 908 сообщений
глюк

Сообщение отредактировал Random: 01.11.2009, 02:16:40

  • 0

#174
Игорь96

Игорь96

    Читатель

  • Гость
  • 12 сообщений

игорь тебе 13? лет хочеш стать хакером?

мне 13 лет но я не сказал чо хочу стать хакером я хочу хоть чичуть научится и развивать своё умение вот и прошу пусть мне показали или научили хоть чемуто
  • 0

#175
smug

smug
  • Свой человек
  • 513 сообщений
начни изучать язык С
установи себе visual studio
попробуй создать прогу Hello world

есть такое мнение у способных парней что начать писать на каком либо языке это пройти один раз путь от установки необходимх программ для создания приложения
написания в нем простейшей программы ее компиляция и запуск

вторым заданием можеш попробовать написать программу по выводу чисел фибоначчи (программка должна быть примерно следующего вида:
пользователь вводит число больше хотябы 10
программа выводит 10 чисел фибоначи после чего ожидаеться нажатие какой либо клавиши и потом закрываеться)


да кстати всю необходимую инфу попробуй найти в инете ее полно(заодно привыкнеш искать что нужно в горе мусора)

тебе придеться многа читать и поэтому как утанут глаза делай разминку для глаз(сильно зажмурся,смотри вверх влево вправо сделай круговые дивижения и так пару раз)
главное не забывай о разминке
результат выложи сюда мы одобрим :laugh:

Сообщение отредактировал smug: 01.11.2009, 15:35:31

  • 0

#176
Игорь™

Игорь™
  • Гость
  • 9 сообщений

начни изучать язык С
установи себе visual studio
попробуй создать прогу Hello world

есть такое мнение у способных парней что начать писать на каком либо языке это пройти один раз путь от установки необходимх программ для создания приложения
написания в нем простейшей программы ее компиляция и запуск

вторым заданием можеш попробовать написать программу по выводу чисел фибоначчи (программка должна быть примерно следующего вида:
пользователь вводит число больше хотябы 10
программа выводит 10 чисел фибоначи после чего ожидаеться нажатие какой либо клавиши и потом закрываеться)


да кстати всю необходимую инфу попробуй найти в инете ее полно(заодно привыкнеш искать что нужно в горе мусора)

тебе придеться многа читать и поэтому как утанут глаза делай разминку для глаз(сильно зажмурся,смотри вверх влево вправо сделай круговые дивижения и так пару раз)
главное не забывай о разминке
результат выложи сюда мы одобрим :laugh:

спасибо конешно токо я нечё почти непонил ты поможишь чемнебуть оставь как я с тобой могу свизатся
  • 0

#177
smug

smug
  • Свой человек
  • 513 сообщений
вообщем прокоментирую для тебя игорек

начни изучать язык С //предложил этот язык так как считаю его более проффесиональным и перспективным чем паскаль сам я на паскале пописываю
установи себе visual studio //программа широкого спектра начинку расписывать небуду самому придеться посидеть поковырять ,там будет многа всего и сразу ты не поймеш, станет даже сыкотно как то ею пользоваться со временем привыкнеш ,если желание не отпадет ее придеться купить или скачать набереш в гугеле visual studio 2005

попробуй создать прогу Hello world//прогарама просто выводить сообщение HelloWorld

есть такое мнение у способных парней что начать писать на каком либо языке это пройти один раз путь от установки необходимх программ для создания приложения
написания в нем простейшей программы ее компиляция и запуск //это лирика особой инфы тут нет

вторым заданием можеш попробовать написать программу по выводу чисел фибоначчи (программка должна быть примерно следующего вида:
пользователь вводит число больше хотябы 10
программа выводит 10 чисел фибоначи после чего ожидаеться нажатие какой либо клавиши и потом закрываеться) //это как бы тебе задание без задачи сложно осваивать что то

//дальше просто советы
да кстати всю необходимую инфу попробуй найти в инете ее полно(заодно привыкнеш искать что нужно в горе мусора)

тебе придеться многа читать и поэтому как утанут глаза делай разминку для глаз(сильно зажмурся,смотри вверх влево вправо сделай круговые дивижения и так пару раз)
главное не забывай о разминке

результат выложи сюда мы одобрим :-) //человека тоже можно дрессировать


  • 0

#178
demerung

demerung
  • Гость
  • 10 сообщений
smug спасибо тебе большое но я чото понимаю чото нет оставь мне сообшение как я с тобой могу связаться жилательно не по аськи

Сообщение отредактировал demerung: 02.11.2009, 13:20:49

  • 0

#179
Atl@ntis

Atl@ntis
  • Завсегдатай
  • 223 сообщений
прочитал советы для айтишников-студентов.
и решил поделиться. думаю будет актуально и для Игорь™ и его клонов Игорь96, demerung.... не знаю сколько у тебя тут аккаунтов. :D

Студенчество — отличная пора, когда есть достаточно времени, чтобы стать отличным специалистом. Это становление всегда занимает определенное время. Скажем, 3-5 лет. Чем раньше начнешь — тем раньше станешь. Очень важно, на мой взгляд, не потерять время.

В программисте важны не технологии, которыми он владеет, а его мышление и опыт. Чем больше технологий «пощупает» программист — тем шире его кругозор, тем больше подходов он знает, тем легче освоит что-то новое.


Предполагается, что студент пошел на 1й курс после школы и практических навыков не имеет (а вот за то, что он еще не имеет практических навыков — он должен получить ложкой в лоб за раздолбайство!).
Также предполагается, что аспирантура и научная деятельность студента не интересует, а терять время на академы студент не собирается.

1 курс.
Программируйте.
Программировать надо вне учебной программы и программировать много. Для себя — придумывать задачки и их делать. Не важно, какие технологии использовать — те, которые интересны.

Задача этого пункта — набить руку, сделать программирование естественным состоянием для себя, формировать мышление. Самостоятельно выполненные проекты (пусть небольшие) — это огромный бонус, который еще три года будет Вашим козырем. Вторая задача — научиться организовывать свой рабочий процесс, успевать все.

2 курс.
Осваивайте технологии.
Посмотрите, что сейчас есть вокруг, поработайте с разными языками, разными средами программирования. Продолжайте делать самостоятельные проекты.
А еще — делайте ДЗ ленивым студентам первого курса (за деньги!)

Задачи этого пункта — научиться быстро учиться (:-D) и расширить спектр стартовых направлений.
Нужно, чтобы теперь при поступлении любой новой (пусть не очень сложной) задачи студент мог открыть документацию и начать её реализовывать. Кроме этого появится небольшое портфолио во всех технологиях.
Пункт про деньги включен для того, чтобы Вы уже начинале вертеться и учились зарабатывать. Пусть немного, но это уже поиск «клиентов», это уже развивает проактивность.

3 курс.
Работайте.
Можно устроиться на полставки в какую-то фирму (а вас с удовольствием возьмут без опыта, потому что первые два курса демонстрируют вашу активность, желание и готовность учиться и работать), а можно начать фрилансить. Первый вариант дает рост как программиста, специалиста и разработчика. Второй вариант развивает несколько иные навыки — проактивность, общение, выживаемость.

Задачи этого пункта — научиться оценивать себя, научиться смотреть на проекты со стороны потребителя и его потребностей, сформировать самооценку и самоуважение (очень важно!). Ну и прокачивать то, что Вам непосредственно необходимо.

4 курс.
Определитесь.
На 4м курсе остается минимум времени, чтобы определить вектор своего движения дальше. Если решено быть ценным кадром — надо развивать навыки работы с конкретными технологиями — изучать свежие материалы, ставить новые задачи — становиться гуру в выбранном направлении.

Если выбран путь фрилансера/предпринимателя — надо определить спектр технологий, который понадобится для решения задач, нужно активно развивать портфолио и увеличивать объемы заказов, налаживать связи с заказчиками, учитесь вести переговоры и подавать информацию неискушенным клиентам.

Задачи этого пункта — подготовить основательную платформу для дальнейшего развития.

5 курс.
Растите.
5й курс — это последний год, когда необходимость зарабатывать еще не критична (вполне можно позволить себе зарабатывать мало, например). На 5м курсе еще можно с минимальными потерями что-то поменять.
Четкой границы между 4м и 5м курсе в данном «плане» нету. Начинать надо тогда, когда чувствуешь, что пора.

Я же рассматриваю 5й курс как площадку для взлета. Предполетная подготовка уже закончена, нужно взлетать.

взял на habrahabr.ru :rolleyes:
  • 0

#180
Ty-154

Ty-154
  • Частый гость
  • 62 сообщений
Ужас во что тема превратилась...

Рекомендую не начинать с дельфи. Ибо оно ломает новичку представление о ... Короче много о чем.

Начинать с интерпретируемого языка (PHP, Python) очень привлекательно простотой пользования без IDE, но опасно отсутствием понимания о типах.

Очень рекомендую начать с жёстко - типизированного языка, например Java или C#. Потому что:
- есть достойные, свободно доступные, бесплатные IDE.
- эти языки дадут хорошее понимание ООП.
- это универсальные языки, которые могут быть использованы для любых приложений, включая Веб.
- касаемо этих языков есть огромная масса литературы.


PS Повторюсь... очень не рекомендую начинать с дельфи, так можно стать простым "кнопкодавом". Таких среди "дельфинов" процентов 80. Накидали кнопок на форму, написали код по двойному клику... и клоуны удивляются потом... "почему прога так тупит? :rolleyes: "

PPS Если кого-то заинтересовало, то что я написал - дайте знать... я продолжу.
  • 0


Количество пользователей, читающих эту тему: 0

пользователей: 0, неизвестных прохожих: 0, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.