Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Си строки 
V
    Опции темы
mes
Дата 11.10.2010, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(bsa @  11.10.2010,  11:35 Найти цитируемый пост)
 так как постоянно пытаешься использовать приемы из С,

и если продолжать программировать си-приемами на С++, то так и не сможешь использовать силу C++, а в душе будет расти негодование типа "ООП must die"  smile 
надеюсь никто не обидится smile 




--------------------
PM MAIL WWW   Вверх
djamshud
Дата 11.10.2010, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



bsa, имхо си можно отнести в категорию паскаля в смысле простоты первоначального изучения языка и дальнейшей прокачки алгоритмических навыков.

>Программу написать на С++ проще, чем на С.

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

>Зато С++ очень сложно учить после С, так как постоянно пытаешься использовать приемы из С, что сильно усложняет процесс обучения.

Это можно сказать о любой паре не почти одинаковых языков. После изучения своего первого языка, дальнейшие стоит осваивать начиная с парадигм, в них заложеных - в таком случае проблемы минимизируются. Если подходить "в лоб", то при изучении в порядке C++ -> C то же самое на С будут использовать приемы из С++.

Добавлено через 3 минуты и 24 секунды
mes, я отлично знаю С++ и достаточно хорошо ОО-проектирование в целом. И использую плюшки по назначению, а не абы как:).

/me не обиделся.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
mes
Дата 11.10.2010, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(djamshud @  11.10.2010,  12:24 Найти цитируемый пост)
 Если подходить "в лоб", то при изучении в порядке C++ -> C то же самое на С будут использовать приемы из С++.

имхо, объективно это далеко не то же самое smile


Цитата(djamshud @  11.10.2010,  12:24 Найти цитируемый пост)
 и достаточно хорошо ОО-проектирование в целом. И использую плюшки по назначению, а не абы какsmile.

я не упрекал Вас в незнании, а наоборот остерегался, что воспримете на свой счет.. но Ваша "цитата" уж больно подходила для данного случая  smile 


--------------------
PM MAIL WWW   Вверх
djamshud
Дата 11.10.2010, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



mes, под "то же самое" я имел в виду, что человек все равно наступит на грабли, пусть и на другие. Языки изучать с умом надо, вот и все.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
Bartman2D
Дата 11.10.2010, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.10.2010

Репутация: нет
Всего: нет



Да ладно вам холивары устраивать. Все сделал, сдал. Тема закрыта, код вот:
Код

#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include <windows.h>
#include <string.h>
#include <conio.h>


int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);

    char str1[100];
    char str2[100];
    int a;
        do
        {
            printf("Введите первую строку на английском языке:\n");
            gets(str1);
            printf("Введите вторую строку на английском языке:\n");
            gets(str2);

            char *str = strtok (str1," ,.-"); //разделяем первое предложение на слова.
            char *strr = strtok (str2," ,.-");
            while (str = NULL)
            {
                if (strstr(strr, str)) //сравниваем слова и вторую строку, если есть вхождения то возвращает ненулевое значение.
                    printf("В обоих предложениях содержатся слова: %s \n", str);
                else
                    printf("\n");//"В этих предложениях нет повторяющихся слов.\n", str);
                    str = strtok (NULL, " ,.-");
            }
            printf("Повторить программу? 1-Да, 0-Нет.");
            scanf("%d", &a);
            getchar();
  
            }while(a!=0);
  
    return 0;
}



Это сообщение отредактировал(а) Bartman2D - 11.10.2010, 15:39
PM MAIL   Вверх
xvr
Дата 11.10.2010, 17:09 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(Bartman2D @  11.10.2010,  15:28 Найти цитируемый пост)
Все сделал, сдал. Тема закрыта, код вот:
Да уж. То, что сдал, несмотря на одну грубую ошибку и еще одну тонко спрятанную, наводит на отдельные мысли о качестве обучения  smile 


PM MAIL   Вверх
toxx
Дата 11.10.2010, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: 4
Всего: 13



xvr
Код

while (str = NULL)


эта? или где? =)
п.с. чисто для себя искал 

Это сообщение отредактировал(а) toxx - 11.10.2010, 17:12
PM MAIL   Вверх
bsa
Дата 11.10.2010, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Удивительно, что компилятор предупреждение не кинул... Цикл же никогда даже один раз не выполнится!!!
Я уж не говорю про последовательное использование strtok... Такое ощущение, что при проверке даже не запускали...
PM   Вверх
toxx
Дата 11.10.2010, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: 4
Всего: 13



мде, вот и написал...сдал и забыл образование на высоте =)
PM MAIL   Вверх
xvr
Дата 11.10.2010, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(toxx @ 11.10.2010,  17:12)
xvr
Код

while (str = NULL)


эта? или где? =)
п.с. чисто для себя искал

Пардон, 3 ошибки  smile 
Эта, плюс лишний strtok в строке 25, плюс поиск по strstr - он не различает границы слов. Т.е. слово abr будет найдено в строке abrakadabra, а не должно  smile

Добавлено через 1 минуту и 30 секунд
Да, и еще ошибка в while (даже если заменить = на ==). Там должно быть !=

Так что 4 ошибки

PM MAIL   Вверх
ncr
Дата 11.10.2010, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 10.5.2010

Репутация: нет
Всего: нет



В копилку: если пользователь введёт больше ста символов - будет "ой".

Ну и использование SetConsoleCP / SetConsoleOutputCP для вывода русского текста - моветон, равно как и "магическое число" 1251 в качестве аргумента.
PM MAIL   Вверх
xvr
Дата 11.10.2010, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Можно организовывать конкурс - кто найдет больше ошибок  smile 

PM MAIL   Вверх
Bartman2D
Дата 1.11.2010, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.10.2010

Репутация: нет
Всего: нет



Да, начал перебирать заново прогу, передалал кучу всего. Хватит меня тут материть, я к тому времени Си изучал 2недели.
И "!" Случайно упущен, при сдаче он был, да и strstr я замеенил на strcmp, если возвращает 0 то вывести слово на экран.

Это сообщение отредактировал(а) Bartman2D - 1.11.2010, 18:22
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0856 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.