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

Фотография

Основы ПрограмированияПотренируемся на ночь?


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

#101
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений
:super: (Задачка для средней и старшей группы детсада)

#include <stdio.h>

int main()
{
   int z, sum;
   ...                   //что-то делаем...

   while (z >= 0)
       sum = sum + z;
   ...
return 0;
}
Будет или нет работать данная программа? Почему?
  • 0

#102
Лоэрта

Лоэрта
  • Завсегдатай
  • 250 сообщений
если и будет, то доооолго :super: особенно если z=0
  • 0

#103
San_k

San_k
  • В доску свой
  • 1 509 сообщений
странный цикл :D
т.к. z не изменяется, то он бесконечный.
  • 0

#104
v04bvs

v04bvs
  • В доску свой
  • 2 062 сообщений
Вообще-то цикл будет бесконечным, если z перед циклом неотрицательно..

Вот вам задачка. Есть последовательность из float, нужно найти подпоследовательность с максимальной суммой, подпоследовательность должна быть без разрывов. Примеры:
1 2 3 => 1 2 3
2 -1 3 => 2 -1 3
2 -100 3 => 3
2 -2 3 -3 -100 => 3
1 -2 4 -3 1 -3 1 => 4 -3 1
  • 0

#105
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений
Да. Цикл будет бесконечным. Но подождите - это еще не все. Есть еще одна важная подробность, которую никто не отметил. К сумме sum (деньги на вашем счете) вы все время добавляете одно и то же положительное число (например, 100 у.е. - ваши ежемесячные взносы в банк), но почему-то в один роковой момент вся эта сумма вдруг становится отрицательной - откуда ни возьмись, появляется очень большое число со знаком минус - ваш громадный долг! Кошмар какой-то! :smoke:

Вот он, час страшной расплаты за равнодушие и пренебрежение к ассемблеру - дедушке всех современных языков программирования! :D

Сообщение отредактировал Visual1: 28.09.2005, 23:10:37

  • 0

#106
Gloomy

Gloomy
  • Свой человек
  • 861 сообщений
Не боись Visual1 !
Тот "громадный долг" с такой же скоростью будет уменьшаться и вскоре снова станет прибылью :D
Правда потом все по - новой :-\
  • 0

#107
San_k

San_k
  • В доску свой
  • 1 509 сообщений
в общем. бесконечность есть бесконечность. :D
  • 0

#108
San_k

San_k
  • В доску свой
  • 1 509 сообщений

Вообще-то цикл будет бесконечным, если z перед циклом неотрицательно..

Вот вам задачка. Есть последовательность из float, нужно найти подпоследовательность с максимальной суммой, подпоследовательность должна быть без разрывов. Примеры:
1 2 3 => 1 2 3
2 -1 3 => 2 -1 3
2 -100 3 => 3
2 -2 3 -3 -100 => 3
1 -2 4 -3 1 -3 1 => 4 -3 1

а за какую сложность надо сделать?
за O(n^2) можно сделать без проблем
  • 0

#109
Kerberos

Kerberos
  • Постоялец
  • 334 сообщений

откуда ни возьмись, появляется очень большое число со знаком минус - ваш громадный долг! Кошмар какой-то!  :D


не "откуда ни возьмись", а в результате установке первого бита из двухбайтового int в единицу :smoke:

юзайте unsigned (так кажется это в сях называется), и будет вам щастье))
  • 0

#110
Visual1

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

Тот "громадный долг" с такой же скоростью будет уменьшаться и вскоре снова станет прибылью :D
Правда потом все по - новой :-\

Да. :smoke:

Сообщение отредактировал Visual1: 29.09.2005, 20:01:10

  • 0

#111
Visual1

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

не "откуда ни возьмись", а в результате установке первого бита из двухбайтового int в единицу :smoke:

Только не "первого" бита, а старшего бита. А вообще, молодец! Возьми пирожок с полки. :D

Сообщение отредактировал Visual1: 29.09.2005, 20:04:39

  • 0

#112
v04bvs

v04bvs
  • В доску свой
  • 2 062 сообщений

Вообще-то цикл будет бесконечным, если z перед циклом неотрицательно..

Вот вам задачка. Есть последовательность из float, нужно найти подпоследовательность с максимальной суммой, подпоследовательность должна быть без разрывов. Примеры:
1 2 3 => 1 2 3
2 -1 3 => 2 -1 3
2 -100 3 => 3
2 -2 3 -3 -100 => 3
1 -2 4 -3 1 -3 1 => 4 -3 1

а за какую сложность надо сделать?
за O(n^2) можно сделать без проблем

Размер массива <= 1e6
Поэтому надо за O(n)
  • 0

#113
Visual1

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

Вот вам задачка. Есть последовательность из float, нужно найти подпоследовательность с максимальной суммой, подпоследовательность должна быть без разрывов. Примеры:
1 2 3 => 1 2 3
2 -1 3 => 2 -1 3
2 -100 3 => 3
2 -2 3 -3 -100 => 3
1 -2 4 -3 1 -3 1 => 4 -3 1

Ладно, допустим, в данном случае не принципиально, что цифры в приведенных примерах лишь отдаленно напоминают тип "float", о котором говорится в условии. Как говорится, замнем для ясности :eek: Но что-то не все приведенные в условии примеры подходят под условие задачи - а это уже серьезно.

Так, в предпоследнем примере автор выбрал в качестве правильного ответа "3". Хорошо, но ведь "2 -2 3" (первые три элемента без разрывов) - тоже дает в сумме 3, не так ли? Однако в условии задачи не сказано, считается ли правильным ответом несколько подпоследовательностей с одинаковой максимальной суммой. Если не считается, то почему выбрана вторая подпоследовательность, а не первая? А если считается, тогда почему эта подпоследовательность не указана?

Последний пример - вообще ни в какие ворота. Правильным ответом автор считает "4 -3 1", но при таком ответе сумма равна всего 2, тогда как при ответе "1 -2 4" сумма равна 3, а при ответе "4" - вообще 4!
  • 0

#114
v04bvs

v04bvs
  • В доску свой
  • 2 062 сообщений

Ладно, допустим, в данном случае не принципиально, что цифры в приведенных примерах лишь отдаленно напоминают тип "float", о котором говорится в условии. Как говорится, замнем для ясности ;-)

Надо было везде писать .0 что-ли? Лень мне, можно и так понять, думаю. Так что замечание не по существу.

Так, в предпоследнем примере автор выбрал в качестве правильного ответа "3". Хорошо, но ведь "2 -2 3" (первые три элемента без разрывов)  - тоже дает в сумме 3, не так ли? Однако в условии задачи не сказано, считается ли правильным ответом несколько подпоследовательностей с одинаковой максимальной суммой. Если не считается, то почему выбрана вторая подпоследовательность, а не первая? А если считается, тогда почему эта подпоследовательность не указана?

Ответом считается любая подпоследовательность, удовлетворяющая условиям.

Последний пример - вообще ни в какие ворота. Правильным ответом автор считает "4 -3 1", но при таком ответе сумма равна всего 2, тогда как при ответе "1 -2 4" сумма равна 3, а при ответе "4" - вообще 4!

Извиняюсь, перемудрил, здесь конечно правильный ответ {4}
  • 0

#115
Visual1

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


Ладно, допустим, в данном случае не принципиально, что цифры в приведенных примерах лишь отдаленно напоминают тип "float", о котором говорится в условии. Как говорится, замнем для ясности :D

Надо было везде писать .0 что-ли? Лень мне, можно и так понять, думаю. Так что замечание не по существу.

Огрызаться не лень? ;-) Я же ясно сказал - ладно, допустим, это не принципиально. Где тут "замечание не по существу"? Но вообще-то предположение, что числа с плавающей точкой будут представлены в памяти компьютера с абсолютной точностью, чаще всего приводит к неправильным результатам. Также не рекомендуется проверять на равенство значения с плавающей точкой (мы же тренируемся? Данная тема называется "Основы программирования"? Тогда кое-что вспомнить только на пользу будет).

Теперь "по существу". Рискну высказать предположение, что задача решается путем построения двоичных деревьев и обхода их узлов в определенном порядке. Я угадал?
  • 0

#116
Tolich

Tolich
  • Завсегдатай
  • 177 сообщений

;-) (Задачка для средней и старшей группы детсада)

#include <stdio.h>

int main()
{
   int z, sum;
   ...                   //что-то делаем...

   while (z >= 0)
       sum = sum + z;
   ...
return 0;
}
Будет или нет работать данная программа? Почему?


Упадет по ошибке синтаксиса.
sum = sum + z;
в этой строке. Оператор присваивания пишется так :=
:D
  • 0

#117
yedyge

yedyge
  • Свой человек
  • 879 сообщений
>Оператор присваивания пишется так :=
это - пять...
  • 0

#118
Visual1

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

Упадет по ошибке синтаксиса.
sum = sum + z;
в этой строке. Оператор присваивания пишется так :=
:(

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

#119
@yBecK

@yBecK
  • Гость
  • 8 сообщений
елси до цикла был z>=0
то программа зависнеть (бесконечный цикл)

Сообщение отредактировал @yBecK: 07.10.2005, 13:41:46

  • 0

#120
Visual1

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

елси до цикла  был z>=0
то программа зависнеть (бесконечный цикл)

На этой же самой странице уже несколько человек дали такой же ответ, да еще и на несколько дней раньше вас. :D

В соседней теме Вы заявили

Язык всех времен и народа - C++!

А, так вы еще и в С++ разбираетесь? :D Замечательно! Тогда ответьте на такой простой вопрос:

class CMyclass
{
   int MyClassID;
   char* MyClassName;
   CMyclass();
   CMyclass(int ID, char* Name){MyclassID = ID; MyclassName = Name};
   ~Myclass();
}
Есть ли здесь ошибки? Какие?
  • 0


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

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

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

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