Социальная сеть FreeStudents | Галерея

Участник Народного голосования
Правила  •  Поиск  •  Войти  •  Зарегистрироваться!
Kabal, Snoop, Sovie, xpol!!!Посмотрите!
На страницу 1, 2  След.  
Начать новую тему   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов -> Помоги студенту!
 
Автор Сообщение
Beatrice



Репутация: 0   
Возраст: 19
Гороскоп: Близнецы Год Змеи
Пол: <br />Пол:Жен
Откуда: Орехово-Зуево
Сообщения: 59
Стаж: 1 год 10 месяцев
[] Сообщение18.03.2007 23:57 Kabal, Snoop, Sovie, xpol!!!Посмотрите! Ответить с цитатой

Смайлик Поцелуй Kabal, Snoop, Sovie, xpol (вроде никого не забыла:) )!
Спасибо вам за ваши варианты, я их все разобрала, попробовала! Смайлик Поцелуй

Но теперь посмотрите, что СДЕЛАЛА Я. Мне кажется, вот такой вот вариант попроще, подходит под уровень первака и вроде как все верно. Во всяком случае, Преподша все приняла!

Оцените!

Код:
#include <stdio.h>
#include <string.h>
void main ()
{
  unsigned int i=0;
  char stroka[1023]="";
  puts ("Vvedite stroky \n");
  gets(stroka);
  for (i=0;i<strlen(stroka); i++)
  {
    if(stroka[i]=='+') for (i++; i<strlen(stroka); i++)
    stroka[i]='*';
  }
  puts(stroka);
}


хмммм....все оч оч оч просто..странно почему у меня сразу не получалось, вроде бы пробовала по такой же логике!
вот за это не люблю программирование, какая-нить мелкая деталька, как казалось бы, не существенный моментик может все испортить....И НИЧЕГО НЕ ПОЛУЧИТСЯ!
(еще удивительнее..почему не знала правильного решения сама преподша...)
СПАСИБО ВАМ, ребята!


_________________
_____Люди часто одиноки, потому что они строят стены вместо мостов_____
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Snoop



Репутация: +2   
Возраст: 20
Гороскоп: Весы Год Кошки
Пол: <br />Пол:Муж
Откуда: Санкт-Петербург
Сообщения: 1123
Стаж: 3 года 10 месяцев
[] Сообщение19.03.2007 0:12 Ответить с цитатой

Beatrice
а нафига, если ты уже нашла символ и всё позаменяла дальше бегать по буковкам? ретурн что ли поставь


_________________
Может показаться, что я ничего не делаю, но на клеточном уровне я очень занят!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail М-Агент
Sovie



Репутация: +20/–1   
Пол: <br />Пол:Муж
Откуда: Санкт-Петербург
Сообщения: 787
Стаж: 2 года 7 месяцев
[] Сообщение19.03.2007 0:20 Всего отзывов: 1 Ответить с цитатой

Главное, что это твоё решение и оно тебе понятно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kabal
Инноватор-самоучка


Репутация: +19/–1   
Возраст: 26
Гороскоп: Козерог Год Петуха
Пол: <br />Пол:Муж
Откуда: Санкт-Петербург
Сообщения: 3247
Стаж: 2 года 9 месяцев
[] Сообщение19.03.2007 9:21 Ответить с цитатой

Beatrice
Эт прально Смайлик. Главное, что сама Смайлик. А уж оптимизация кода и красота программирования - это все в будущем. Успехов.


_________________

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Skype Name
xpol



Репутация: 0   
Возраст: 20
Гороскоп: Телец Год Дракона
Пол: <br />Пол:Муж
Сообщения: 20
Стаж: 1 год 7 месяцев
[] Сообщение19.03.2007 20:20 Ответить с цитатой

Я бы написал так, а то как-то неэстетично :) :

Код:


...

for (i=0;i<strlen(stroka); i++)
  {
    if(stroka[i]=='+')
      for (i++; i<strlen(stroka); stroka[i++]='*');

      /*
      ну или так попонятнее:
      for (i++; i<strlen(stroka); i++)  stroka[i]='*';
      вообщем смысл думаю понятен :)
      */
  }

...



Beatrice-молодец, все клево, и написано просто супер, прада до моего варианта, как мне кажется недотягивает, но все равно - твой мне очень нравится.

Snoop, -1 :)) шутка. Где там "бег по буковкам" ? К концу цикла замены символов строки на '*' индекс i уже не будет удовлетворять условию "главного" цикла, у них условия одинаковые и индекс один. Лично мне это очень нравится. Все норм, только можно ли избежать
излишней проверки условия главного цикла? Ведь после окончания цикла, которое возникает при неудовлетворению условию i<strlen(stroka), индекс i увеличивается на 1, а потом снова проверяется это же условие!! Нерационально, но наглядно, и программа у нас понятна, и у нас большой простор для повторного использования кода, так как изменения в программе это больше правило, чем исключение. Программа в любом случае, как мне кажется, будет уступать предложенному мной варианту с strchr. Но тем не менее можно поломать голову и что-нибудь придумать :).

Итак, поехали:
Предложенный вариант от Beatrice очень хорош. Мне лично нравится. Достоинства - прост, понятен, довольно интересен, хорошие возможности для повторного использования.
Недостатком является упоминавшаяся выше избыточная проверка.
Как избежать? Единственным вариантом мне видится прекращение работы участка кода при нахождении знака '+', т.е. при его нахождении мы не будем возвращаться в главный цикл, где нас ждет страшная повторная проверка! Сделаем упоминавшийся Snoop'ом return, но в несколько ином виде, как мне кажется молодой человек несколько иное имел ввиду :). Пошлем на ретарн строку на вывод. Что-то вроде этого мы сможем использовать при реализации в виде функции. Сделаем так: return(puts(stroka));
Что, компилятор ругается и брызжет слюной??? Тогда измените тип возвращаемого значения функции main: стоял void, поменяем на int!!
И вуаля!!! Все прекрасно работает. Фишка в том что у puts возвращаемое значение int.
Плюс - мы поломали голову, нашли интересное решение, у нас так же неплохие возможности для повторного использования кода, при переходе к процедурному программированию возвращаемое значение можем менять как угодно(нам ведь вовсе необязательно выводить на экран строку функцией) - все очень хорошо.
Вот конечный вариант:

Код:


#include <stdio.h>
#include <string.h>
int main ()
{
  unsigned int i=0;
  char stroka[1023]="";
  puts ("Vvedite stroky");
  gets(stroka);
  for (i=0;i<strlen(stroka); i++) {
     if(stroka[i]=='+') {
      for (i++; i<strlen(stroka); stroka[i++]='*');
      return(puts(stroka));
     }
  }   
}



Программа получилась яркой, интересной(впринципе она такой и была - Beatrice - молодец!), думаю по производительности не будет уступать варианту с strchr, но тем не менее вариант с strchr нам дает новые возможности, неуступая в производительности. Но мы поломали голову и это главное. Хочется отметить, что при переходе к iostream и динамическому выделению памяти мы сможем совсем отказаться от string.h(strlen заменить на sizeof - что даст нам заметный выигрыш в производительности), используя всего одну библиотеку, но это уже другая история :) !

Beatrice - молодец, пиши еще! :)


_________________
MESS WITH THE BEST -
DIE LIKE THE REST
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Snoop



Репутация: +2   
Возраст: 20
Гороскоп: Весы Год Кошки
Пол: <br />Пол:Муж
Откуда: Санкт-Петербург
Сообщения: 1123
Стаж: 3 года 10 месяцев
[] Сообщение19.03.2007 20:33 Ответить с цитатой

xpol
ты прав, а я изгой Закатывает глаза Crazy


_________________
Может показаться, что я ничего не делаю, но на клеточном уровне я очень занят!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail М-Агент
Kabal
Инноватор-самоучка


Репутация: +19/–1   
Возраст: 26
Гороскоп: Козерог Год Петуха
Пол: <br />Пол:Муж
Откуда: Санкт-Петербург
Сообщения: 3247
Стаж: 2 года 9 месяцев
[] Сообщение19.03.2007 22:43 Ответить с цитатой

xpol
Прекрати выпендриваться. Если хочешь соревноваться в соответствующих ускорениях проги и заниманием памяти - иди на соответствующие форумы и там показывай крутость. А тут - чем проще тем лучше, человек хорошо начал, сам разобрался.


_________________

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Skype Name
Sovie



Репутация: +20/–1   
Пол: <br />Пол:Муж
Откуда: Санкт-Петербург
Сообщения: 787
Стаж: 2 года 7 месяцев
[] Сообщение19.03.2007 22:53 Ответить с цитатой

В одном Kabal точно прав, решать нужно ту задачу, которая дана.

ЗДЕСЬ НУ НИКАКИМ БОКОМ НЕ НУЖНА ОПТИМИЗАЦИЯ. ХВАТИТ.

Кстати, к слову, чтобы Вы, любезный xpol, не думали, что я зря нагоняю волны, добавлю: попробуйте попраграммировать на SystemC в условиях действительно ограниченных ресурсов. Или попробуйте VHDL. Этим, собственно, и "промышляет" Kabal. Вот тут нужна экономия, аккуратность и даже маниакальная осторожность. А в простой лабе первокурсника она не нужна.

Блин. Что-то я в чувствах весь. Старый стал, старый...

Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Beatrice



Репутация: 0   
Возраст: 19
Гороскоп: Близнецы Год Змеи
Пол: <br />Пол:Жен
Откуда: Орехово-Зуево
Сообщения: 59
Стаж: 1 год 10 месяцев
[] Сообщение19.03.2007 23:30 Ответить с цитатой

Спасибки вам! буду стараться, совершенствоваться, оптимизироваться Смайлик)))))) Гы-гы-гы! .....учиться)))

_________________
_____Люди часто одиноки, потому что они строят стены вместо мостов_____
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Snoop



Репутация: +2   
Возраст: 20
Гороскоп: Весы Год Кошки
Пол: <br />Пол:Муж
Откуда: Санкт-Петербург
Сообщения: 1123
Стаж: 3 года 10 месяцев
[] Сообщение19.03.2007 23:50 Ответить с цитатой

Beatrice
лучше иди пивка попей, учиться тоже надо в меру)


_________________
Может показаться, что я ничего не делаю, но на клеточном уровне я очень занят!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail М-Агент
xpol



Репутация: 0   
Возраст: 20
Гороскоп: Телец Год Дракона
Пол: <br />Пол:Муж
Сообщения: 20
Стаж: 1 год 7 месяцев
[] Сообщение20.03.2007 9:20 Ответить с цитатой

Мне прямо скажем не понятен ваш негатив.

1. В каком месте я выпендриваюсь?
2. Оптимизация нужна везде.
3. То что я написал поможет ей в понимании некоторых основ языка, его возможностей, элементов стиля.
4. Писал я в том числе и для себя.
5. Что хочу - то и пишу.
6. Говорю тогда, когда считаю нужным и соответствующие вещи.
7. Мне про оптимизацию и принципы построения алгоритмов говорили достаточно поздно и вскользь. Поэтому опять же считаю что человек хотя бы должен слышать о них.
8. Что, своими постами я задел чьё-то самолюбие??
9. Кабал, я писал что мне понравился вариант девушки.
10.Девушка поломала голову - я поломал голову - девушка поломала голову над моим вариантом - ВСЁ ПРОСТО ПРЕКРАСНО!!! В чем недовольство? Вам не нравится что я потрудился больше вашего и запостил свои мысли и труды??
11. Уважаемый Sovie, если бы в простой лабе первокурсника не нужны была оптимизация, то учителя не отправляли бы по 10 раз переделывать готовые работающие лабы, хотя так делают все кроме кабала. Но тут я думаю мы говорим о разных уровнях оптимизации. Но тем не менее. Вот я был бы просто счаслив, если бы мне кто-нить написал интересный ход решения какой-нить задачи и во времена первокрсника и сейчас.
Чем проще тем лучше? - Все верно, в результате так и получилось.

Кстати я бы добавил в коде еще одну строчку:

Код:


#include <stdio.h>
#include <string.h>
int main ()
{
  unsigned int i = 0;
  char stroka[1023] = "";
  puts ("Vvedite stroky");
  gets(stroka);
  for (i = 0; i < strlen(stroka); i++) {
     if(stroka[i] == '+') {
      for (i++; i < strlen(stroka); stroka[i++] = '*');
      return(puts(stroka));
     }
  }
  return(puts(stroka));            // - Добавлено здесь
}



Вот теперь все норм :)


_________________
MESS WITH THE BEST -
DIE LIKE THE REST
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
SatinS



Репутация: +6/–2   
Возраст: 20
Гороскоп: Телец Год Дракона
Пол: <br />Пол:Муж
Откуда: Череповец
Сообщения: 1927
Стаж: 1 год 11 месяцев
[] Сообщение20.03.2007 12:51 Ответить с цитатой

А я бы зациклил... Гы-гы-гы! Гы-гы-гы! Гы-гы-гы!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail AIM Address Yahoo Messenger MSN Messenger М-Агент Skype Name
Kabal
Инноватор-самоучка


Репутация: +19/–1   
Возраст: 26
Гороскоп: Козерог Год Петуха
Пол: <br />Пол:Муж
Откуда: Санкт-Петербург
Сообщения: 3247
Стаж: 2 года 9 месяцев
[] Сообщение20.03.2007 13:20 Ответить с цитатой

xpol писал(а):
1. В каком месте я выпендриваюсь?

В каждом посте.

xpol писал(а):
2. Оптимизация нужна везде.

Нет. Сходи опять же на тематические форумы.

xpol писал(а):
3. То что я написал поможет ей в понимании некоторых основ языка, его возможностей, элементов стиля.

А годовалому ребенку например вместе с азбукой еще давать правила типа "Жи,Ши, пиши с буквы и" и желательно интегралы

xpol писал(а):
4. Писал я в том числе и для себя.

Для себя и пиши, если спустится с небес на землю для тебя сложно.

xpol писал(а):
5. Что хочу - то и пишу.
6. Говорю тогда, когда считаю нужным и соответствующие вещи.

Тогда не удивляйся, что это вызывает негативную реакцию на форуме.

xpol писал(а):
7. Мне про оптимизацию и принципы построения алгоритмов говорили достаточно поздно и вскользь. Поэтому опять же считаю что человек хотя бы должен слышать о них.

См. пункт про годовалого ребенка.

xpol писал(а):
8. Что, своими постами я задел чьё-то самолюбие??

Нет, просто показал свою самовлюбленность.

xpol писал(а):
9. Кабал, я писал что мне понравился вариант девушки.

xpol писал(а):
Beatrice-молодец, все клево, и написано просто супер, прада до моего варианта, как мне кажется недотягивает, но все равно - твой мне очень нравится.

Это заодно и про самовлюбленность.

xpol писал(а):
10.Девушка поломала голову - я поломал голову - девушка поломала голову над моим вариантом - ВСЁ ПРОСТО ПРЕКРАСНО!!! В чем недовольство? Вам не нравится что я потрудился больше вашего и запостил свои мысли и труды??

Перечитай заного то что написал Совие.

xpol писал(а):
11. Уважаемый Sovie, если бы в простой лабе первокурсника не нужны была оптимизация, то учителя не отправляли бы по 10 раз переделывать готовые работающие лабы, хотя так делают все кроме кабала.

Считаю это правильным. Не все отправляют, процентов 70% не отправляют.

xpol писал(а):
я был бы просто счаслив, если бы мне кто-нить написал интересный ход решения какой-нить задачи и во времена первокрсника и сейчас.

Будешь преподавателем - будешь просто счастлив Тока боюсь именно и будешь отправлять по 10 раз с формулировкой - что-то вы без указателей сделали ... не нравится мне. Ну и что, что вам не читали, почитаете.


_________________

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Skype Name
SatinS



Репутация: +6/–2   
Возраст: 20
Гороскоп: Телец Год Дракона
Пол: <br />Пол:Муж
Откуда: Череповец
Сообщения: 1927
Стаж: 1 год 11 месяцев
[] Сообщение20.03.2007 17:13 Ответить с цитатой

xpol писал(а):

4. Писал я в том числе и для себя.
5. Что хочу - то и пишу.
6. Говорю тогда, когда считаю нужным и соответствующие вещи.

Norsk?

Народ не спорьте, всё равно я круче Гы-гы-гы!

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail AIM Address Yahoo Messenger MSN Messenger М-Агент Skype Name
Tiffany
Клёвая девчонка
Клёвая девчонка


Репутация: +14   
Возраст: 20
Гороскоп: Водолей Год Кошки
Пол: <br />Пол:Жен
Откуда: Санкт-Петербург
Сообщения: 2745
Стаж: 4 года 2 месяца
[] Сообщение20.03.2007 17:57 Ответить с цитатой

 !  Tiffany @ 20.03.2007 17:57:
На личности не переходим! Злой


_________________
Луна, я вижу лишь тебя. Но ты видишь несоизмеримо больше.
Ответь мне, Луна, смотрит ли та, чьё имя я берегу, вечерами вверх, на небо.
Или, быть может, мысли её столь высоки, что нет нужды поднимать взгляда? (с) А. Чёрный
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов -> Помоги студенту! Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы
© 2004—2008 «Сайт Свободных Студентов»