Слово
«length»впервые сказано пользователем
R2d2 23.09.2006 в 14:23,
и с тех пор употреблялось
240 раз.
Сообщения со словом
«length»
Запрос выполнился за
0.0041 сек.
- 03.10.2012, 09:07. Pavel4444 в теме
«указать точки»
созданно такая окружность f -pii 85i n length f r zeros 1 n 3 polar f r grid на каждом 30том...
- 13.01.2012, 09:30. min в теме
«леталки для всех»
... взлета в располагаемую дистанцию взлета takeoff field length входит рабочая длина взлетно-посадочной полосы...
- 13.11.2011, 01:53. jiffy в теме
«The C Programming Language.»
... stats rx over errors break case 0x0800 dev- stats rx length errors break case 0x1000 dev- stats rx frame errors break case 0x1800 dev- stats rx length errors break case 0x2000 dev- stats rx frame...
- 27.10.2011, 16:34. jiffy в теме
«The C Programming Language.»
... такой код код include stdio h define maxline 1000 max length of string in stream int getline char line int maxline k r 1 18 remove trailing tabs and blanks main int i len char line maxline current entered string while len getline line maxline 0 if len 2 i len 2 while line i t line i --i line i 1 n line i 2 0 printf s line return 0 getline read line into s return length int getline char s int lim int c i j 0 for i...
- 26.10.2011, 22:02. jiffy в теме
«The C Programming Language.»
... longest-line program so it will correctly print the length of arbitrary long input lines and as much as...
- 14.10.2011, 19:50. jiffy в теме
«The C Programming Language.»
... на экран можно найти самое большое число в массиве length пусть отно будет равно n и если n 80 то масштабировать числа в массиве lengths коэффициентом 80 n но это все уже так мелочи...
- 14.10.2011, 19:43. jiffy в теме
«The C Programming Language.»
... a word define out 0 state not in a word define maxlength 40 maximal length of a word longer words are ignored это как вы наверное уже знаете так называемые макроопределения в общем случае программа состоит из нескольких файлов с расширением с исходные коды и файлов с расширением h заголовочных файлов в упрощенном виде преобразование этого набора файлов в исполняемую программу проходит следующие этапы http en wikipedia org wiki translation unit programming 1 препроцессирование preprocessing на выходе так называемые translation unit 2 компиляция compilation компиляция translation units на выходе оbject files 3 связывание linking на выходе исполняемая программа executable program нас интересует первый этап препроцессирование препроцессированием занимается препроцессор препроцессор языка с и объекты называемые макросами штука до того не любимая отцом-основателем с б страуструпом что он не раз признавался на страницах своих книг что он всеми силами хотел и наверное до сих пор хочет застать то время когда препроцессор с с его макросами канет в лету для подобного отношения существуют очень веские основания однако избавиться от препроцессора окончательно не удалось ни в с ни в с и не получится потому что препроцессор и макроподстановки описаны и закреплены стандартом макросы провоцируют ошибки их тяжело писать крайне сложно и неприятно отлаживать тем не менее это исключительно мощное и как мне кажетс изящное средство если коротко это не совсем верно но пока на данном этапе достаточно макроподстановка заключается в следующем препроцессор берет макрос и делает контекстную замену в с -шной программе к чему это все а вот к чему у нас есть вот такое определение и чуть ниже такой цикл код define maxlength 40 maximal length of a word longer words are ignored int lengths maxlength for i 0 i maxlength i lengths i 0 еще до компиляции на этапе препроцессирования препроцессор преобразует этот цикл вот во что код int lengths 40 for i 0 i 40 i lengths i 0 то есть в общем в то что мы ожидали однако мы видим конечный результат препроцессирования которое помимо прочего удаляет комментарии из с -шных программ контекстная замена в лоб дает нам следующее код int lengths 40 maximal length of a word longer words are ignored for i 0 i 40 maximal length of a word longer words are ignored i lengths i 0 в принципе это нормальные допустимые записи...
- 14.10.2011, 19:10. jiffy в теме
«The C Programming Language.»
... a word define out 0 state not in a word define maxlength 40 maximal length of a word longer words are ignored prints a vertical histogram of the lengths of words in the input int main void int i j c state wl int nmax int lengths maxlength state out wl 0 nmax 0 for i 0 i maxlength i lengths i 0 while c getchar eof if c c t c n if state in state out if wl maxlength lengths wl else printf nwarning word longer than d symbols n maxlength wl 0 else if state out state in wl for i 1 i maxlength i if lengths i nmax nmax lengths i printf n for i nmax i 0 --i printf for j 1 j maxlength j if lengths j i printf else printf printf n printf for i 1 i maxlength i printf 2d i return 0 ну скомпилировал я ее повводил слова пора думаю что-нибудь нарисовать и поскольку запустил ее в linux нажал на ctrl d чтобы ввести eof ничего не произошло до чего дошел прогресс думаю уже терминалы в x-windows стали настраивать так что они базовые управляющие символы не понимают вбил тестовую прогу состоящую из getchar ан нет все в порядке с терминалами и спустя некоторое время нашел в чем дело обратите внимание на следующие объявления в программе код int i j c state wl int nmax int lengths maxlength и на этот цикл код for i 0 i maxlength i lengths i 0 maxlength определено как 40 не совсем здорово кстати определено но мы к этому позже вернемся вопрос какие индексы являются допустимыми при обращении к элементам массива lengths ответ все целые числа от 0 до 39 включительно в диапазоне от 0 до 39 содержится ровно сорок 40 целых чисел ровно столько сколько мы определили в maxlength поэтому цикл код for i 0 i maxlength i lengths i 0 ошибочен ошибка в том что перебираются все целые числа от 0 до 40 включительно и таким образом мы обнуляем в цикле число типа int следующее сразу за последним элементом массива length а последний элемент массива это length 39 теперь почему же в моем случае я не попадал в цикл while где вызывается getchar и в связи с этим я не мог ввести eof а вот почему это ей-богу весьма примечательное и весьма поучительное обстоятельство смотрите попав в цикл код for i 0 i maxlength i lengths i 0 переменная i изменялась от 0 до 40 включительно и на последнем шаге цикла мы присваивали length 40 значение 0 shit happens именно в этой ячейке памяти лежала локальная переменная i счетчик цикла определенная в начале функции main то есть выполняя length 40 0 мы обнуляли переменную i дале выполнялось пост-условие цикла for а именно i переменная i становилась равной 1 мы переходили к проверке условия цикла и оно сюрприз выполнялось 1 40 соответственно мы попадали в бесконечный цикл и до while c getchar я просто не доходил вот эта ошибка адресация к неверному участку памяти одна из самых часто встречающихся и одна же из самых опасных чаще ее делают правда работая напрямую с указателями как эту проблему решить можно ее решать несколькими способами например можно считать что по индексу 0 лежат слова длины 1 по индексу 1 лежат слова длины 2 и т д однако это не очень здорово потому что неестественно гораздо проще объявить массив так код int lengths maxlength 1 в этом случае в ячейку lengths 0 ничего не попадет да и черт бы с ней зато в ячейках length 1 length 2 length 40 будут лежать количества введенных слов длины...
- 07.10.2011, 11:16. ssBaldy в теме
«Перевод терминологии на английский язык.»
... cube being a cube with an edge equal to the unit of length мог что-то упустить извиняюсь времени немного...
- 29.05.2011, 17:49. Live.Mephist.ru в теме
«Неврастения»
... 223 1 math sin t t-i 2 math pi 3 2 tostring 16 c c length http feedproxy google com r mephi live 3 d8p...