|
|
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
Срочно нужен подробный коммент к каждой строчке данной программы(тема:Строки), очень срочно! помогите, пожалуйста, заранее огромный респект и чловеческое спасибо! Сами задания: 1)Дана последовательность слов. Напечатать те слова последовательности, которые отличны от последнего слова и удовлетворяют следующему свойству: слово симметрично. 2)В заданной строке удалить все символы двоеточие (:) и подсчитать количество удаленных символов. 3)Программа. Дана непустая последовательность непустых слов из латинских букв; соседние слова отделены друг от друга запятой, за последним словом—точка. Определить количество слов, которые оканчиваются буквой w; Сама программа: #include<iostream.h> #include<string.h> #include<stdlib.h> #include<stdio.h> char *str; int choice; void first(char *str) { int i,az,j,alpha,palin,k,in; char *sl,*lw; sl=(char*)calloc(10,1); lw=(char*)calloc(10,1); az=0; for (i=strlen(str);i>=0;i--) if (str ==' ') {for (j=i+1;j<=strlen(str);j++) lw[j-i-1]=str[j];break;} lw[j-i]='\0'; for (j=az;j<=i;j++) sl[j-az]=str[j]; for (i=0;i<=strlen(str);i++) if (str==' ' || i==strlen(str)-1) { sl[0]='\0'; for (j=az;j<=i;j++) sl[j-az]=str[j]; sl[j-az-1]='\0'; palin=0; in=0; for (k=strlen(sl)-1;k>=0;k--) {if (sl[in]!=sl[k]) palin=1;in++;} if (palin==0 && strcmp(sl,lw)!=0) cout<<sl<<endl; az=i+1; } free(sl); } void second(char *str) { int i,j,sch; sch=0; for (i=0;i<=strlen(str);i++) if (str==':') {for (j=i;j<strlen(str);j++) str[j]=str[j+1];i--;sch++;} cout<<str<<endl; cout<<sch<<endl; } void third(char *str) { int i,sch; sch=0; for (i=0;i<strlen(str)-1;i++) { if ((str=='w' && str[i+1]==',') || (str=='w' && str[i+1]=='.')) sch++; } cout<<sch<<endl; } int main() { while (choice!=4) { cout<<"1 - Решить 1 задачу"<<endl; cout<<"2 - Решить 2 задачу"<<endl; cout<<"3 - Решить 3 задачу"<<endl; cout<<"4 - ‚Выход"<<endl; cin>>choice; str=(char*)calloc(255,sizeof(char)); if (choice!=4){ cout<<"‚ўҐ¤ЁвҐ бва®Єг\n"; gets(str); } if (choice==1) first(str); if (choice==2) second(str); if (choice==3) third(str); free(str);} return 0;} p.s. Help good peoples!!!!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2007, 23:30 |
|
||
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
ХЭЛП МИ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2007, 20:01 |
|
||
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
Прошу помощи у вас! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2007, 20:02 |
|
||
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Хотел разобраться с твоим кодом ибо енто интересно, но некоторые строки сам не понимаю. Начал делать, до ума не довел, может тебе частично поможет мои комменты. А вообще советую сделать так, встаешь на первую строку и если встречаешь непонятную или незнакомую функцию лезешь в гуглю и допустим набираешь "описание функции malloc в С" получаешь 500 документов и начинаешь разьираться, не спорю долго, но если сам разберешься вырастешь как программист однозачно. Я сам практически незнаю ни С, ни С++ и приходится разбираться с кодом именно так. Делай переменные более мнемоческие, а не n, num, sum и т д. Если сделал некоторые комменты неправильно, думаю меня поправят. Код: plaintext 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2007, 12:11 |
|
||
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
FasterHarder, ема спасибо тебе огромное, от души помог мне разобраться со строками. Респект и уважуха!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 07:41 |
|
||
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
Люди, помогите плиз с другими комментами... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 17:44 |
|
||
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
Люди, а с другими комментами, кто поможет разобраться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 17:48 |
|
||
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
Homoerro number 2Люди, а с другими комментами, кто поможет разобраться? Я конечно, дико извиняюсь, но за это время можно было бы прочесть ссылку, которую дал blinded и разобраться самому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 18:06 |
|
||
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
Почему вы считаете, что посетители форума будут тратить свое время на это? Обратитесь в форум о работе, сделайте предложение и договоритесь о цене. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 21:13 |
|
||
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
FasterHarder пишет: > // для обработки потоков ввода - вывода > #include<iostream.h> Для потоков ввода-вывода было бы #include <iostream> Ну ладно, будем считать что старый компилятор. > // подключаешь класс типа string, для работы со строками > #include<string.h> Э, ты где такой класс видал ? > // класс для динамического распределения памяти > #include<stdlib.h> Ага, сказки не рассказывай. Это - просто один из заголовков CRTL. > // для работы с потоками > #include <stdio.h> Уже же был для работы с потоками, ты уж определился бы сначала .... > char *str; > int choice; > //========================================================================= > void first(char *str) > { > int i,az,j,alpha,palin,k,in; > char *sl,*lw; > // выделяешь 10 объектов по 1 байту ( лучше new ) > sl=(char*)calloc(*10*,*1*); "объекты" по одному байту и называются "байты", не так ли ? > lw=(char*)calloc(*10*,*1*); > az=*0*; > // цикл, проходящий по всей строке, находящейся в параметре str от конца строки до > // начала > for (i=strlen(str);i>=*0*;i--) > if (str==' ') > { > for (j=i+*1*;j<=strlen(str);j++) > lw[j-i-*1*]=str[j]; > break; > } > // добавляем нуль символ, который завершает каждую строку в С++, насчет С незнаю > lw[j-i]='\0'; > > for (j=az;j<=i;j++) sl[j-az]=str[j]; > for (i=*0*;i<=strlen(str);i++) > if (str==' ' || i==strlen(str)-*1*) > { > sl[*0*]='\0'; > for (j=az;j<=i;j++) sl[j-az]=str[j]; > sl[j-az-*1*]='\0'; > palin=*0*; > in=*0*; > for (k=strlen(sl)-*1*;k>=*0*;k--) > {if (sl[in]!=sl[k]) palin=*1*;in++;} > if (palin==*0* && strcmp(sl,lw)!=*0*) cout<<sl<<endl; > az=i+*1*; > } > free(sl); Э, а где же free(lw) ? > //========================================================================= > int main() > { > // начинаем цикл, продолжающийся до тех пор, пока не будет введена 4 - ка Да, вероятность того, что с подачи там будет четверка действительно ничножно мала, поэтому зачем тратить лишние усилия на инициализацию переменной. > while (choice!=*4*) А циклы с постусловием придумал проклятый Вирт, поэтому мы их применять не будем, абсолютна сагласин с афтарам !! > { > cout<<"1 - Решить 1 задачу"<<endl; > cout<<"2 - Решить 2 задачу"<<endl; > cout<<"3 - Решить 3 задачу"<<endl; > cout<<"4 - ‚Выход"<<endl; > // считываем введеное значение в переменную ( необходмио для выхода из цикла ) > cin>>choice; > // выделяем для размещения 255 объектов указанного размера ( типа char ) > // лучше использовать new и delete, а не calloc и free Откуда такая уверенность, что new и delete лучше чем calloc и free ? Мне бы такую ... > str=(char*)calloc(*255*,sizeof(char)); > if (choice!=*4*){ > cout<<"‚ўҐ¤ЁвҐ бва®Єг\n"; А почему ничего не сказано о этих симпатичных сикаряшках ? Например: "они создают эффект волны на экране, вызывая у пользователя приятные ассоциации с морем и настраивая пользователя на доброжелательный лад". > // Функция предназначена для ввода строки символов из файла stdin. > // Возвращает str если чтение прошло успешно и NULL в обратном случае > // одна из наиболее опасных функций с своем классе, т к можно затереть нужную память > // нет проверки на диапазон Знали б вы сколько таких опасных функций в CRTL ... > gets(str); } > // начинаем управляющую конструкцию и вызываем соот = щую функцию в зависимости > // от choice ( имхо, я бы сделал switch ) Но ты до конца таки не уверен, сделал бы ты свитч или нет, так ? > if (choice==*1*) first(str); > if (choice==*2*) second(str); > if (choice==*3*) third(str); > // освобождаем память ( лучше delete ) > free(str);} > // Все прошло удачно! Не думаю. > return *0*;} В общем, товарисч оказал я так понимаю медвежью услугу. Кстати, о задачах. Задача номер одын не требует выделения дополнительной памяти. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 00:33 |
|
||
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
А кто скажет, на каком языке это написано. Regards dr-Wicked ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 01:06 |
|
||
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 01:14 |
|
||
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
FasterHarderимхо, если судить по заголовочным файлам то на чистых сях.Это написано на студенческом-недоученом языке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 02:46 |
|
||
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
Зачем нужны комментарии типа Код: plaintext 1. В комментарий нужно писать не что ты делаешь, а для чего ты это делаешь. Также комментарий нужен в начале программы - автор, версия, назначение программы. Нужно описывать назначение функций, а лучше и переменных. Нужно описывать логику работы и не очевидные моменты. Судя по Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 08:55 |
|
||
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
dr-WickedА кто скажет, на каком языке это написано. Regards dr-Wicked Си и два плюса. Но судя по отзывам - два минуса. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 09:37 |
|
||
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
FasterHarder Код: plaintext Половина из C, половина из C++. Из C++: Код: plaintext 1. Из C: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. "for (int i = ". Вот это вообще сплошной глюк: Код: plaintext 1. 2. 3. break тоже неясно куда относится, к первому for или ко второму (если предположить что там {} пропущены). Конечно, можно по алгоритму восстановить, но мне лень... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 18:27 |
|
||
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
> if (str==' ') {for (j=i+*1*;j<=strlen(str);j++) > lw[j-i-*1*]=str[j];break;} > > Особенно радует "if (str==' ')" - компилится не будет, и явно из паскаля > пришло, плюс с кавычками путаницы. Почему не будет ? Два числа всегда сравнить можно. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 18:56 |
|
||
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
AkhСи и два плюса. Но судя по отзывам - два минуса. ;)Ну не надо. На С-- это уж тем более не похоже. ErVОсобенно радует "if (str==' ')" - компилится не будет, и явно из паскаля пришло, плюс с кавычками путаницы.Ну почему ж не будет компилиться? Это запросто откомилируется. Ты всегда можешь сравнить значение указателя с целым числом. В данном случае конечно, автор явно хотел не этого, но это уже другой вопрос :) ErVbreak тоже неясно куда относится, к первому for или ко второму (если предположить что там {} пропущены). Конечно, можно по алгоритму восстановить, но мне лень...Ну зачем же алгоритм мучать, он там и так уже замучаный. А брек к внешнему циклу относится. По синтаксису видно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 18:57 |
|
||
|
Комментарии...
|
|||
|---|---|---|---|
|
#18+
White OwlНу почему ж не будет компилиться? Это запросто откомилируется. Ты всегда можешь сравнить значение указателя с целым числом. В данном случае конечно, автор явно хотел не этого, но это уже другой вопрос :) А, пардон, упустил дейстивтельно. Спасибо. White Owl Ну зачем же алгоритм мучать, он там и так уже замучаный. А брек к внешнему циклу относится. По синтаксису видно. По синтаксису видно, но там форматирование такое. что у меня сомнения по поводу того, что брейк дествительно хотели для внешнего цикла сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 19:56 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34465959&tid=2029015]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 356ms |

| 0 / 0 |
