паскаль лажа, вот отрывок кода:
readln(k); t:=0; a:=10; repeat s:=k/a; a:=a*10; t:=s-int(s); until (0<=t) and (t<1); нужно вычислить последнюю цифру во введенном числе k, для этого придется только домножить на выходе из цикла t на 10, НО: если k>1000 (примерно) то получаются следуюшие вычисления: k=5683 s=568.3 t=0.299999999999954 это чоже, у нас теперь 568.3-568=0.299999999999954 ясно, что можно бы и округлить, но почему так??????? _________________ Не бывает безвыходных ситуаций. Есть только ситуации, выход из которых тебя не устраивает... Я вернулся =) |
VM писал(а): это чоже, у нас теперь 568.3-568=0.299999999999954А вообще, если не секрет, в чем смысл сего гениального цикла? (Неужели лишь в том, чтобы найти остаток от деления на 10?) Добавлено спустя 3 минуты: VM писал(а): почему так???????Добавлено спустя 4 минуты 52 секунды: В паскале я полный нуль, но неужели там нет славного оператора %, или какого-нибудь его аналога? |
тебе только разработкой алгоритмов и заниматься я смотрю.. ппц полный _________________ |
VM писал(а): но почему так???????_________________ Ин дер гросен фамилие нихт клювен клац-клац |
andy ice писал(а): на первых уроках/парах это объясняют.на них ходить же нужно. а это не для реальных пацанофф _________________ Запчасти для иномарок. Новые, контрактные ДВС, КПП, кузовщина. +7 912 52 9-OO-39 9-OO-39 www.avtotron45.ru |
moishe писал(а): integerпроблема в том, что он отказывается с ним работать.. а точнее с переменными s и t... а целью было - VM писал(а): вычислить последнюю цифру во введенном числе kandy ice писал(а): на первых уроках/парах это объясняют.да чтото не торопятся.... наших там пока учат мышкой двигать (ну утрировал немного)... moishe писал(а): но неужели там нет славного оператора %незнаю, я с паскалем тоже не особо долго и не особо охотно обшаюсь.... но ведь должен быть код попроше.., может мне кто обьяснит по каким принципам делать в следующий раз? Добавлено спустя 6 минут 42 секунды: вот полный код такой учебной програмки (ну немного не корректный, но зато работает пока без перебоев): program n14; uses crt; var k,a,r:integer; s,t:real; begin readln(k); t:=0; a:=10; repeat s:=k/a; a:=a*10; t:=s-int(s); until (0<=t) and (t<1); r:=round(t*10); case r of 1: write(k,' гриб'); 2..4: write(k,' гриба'); else write(k,' грибов'); end; end. а основная цель - заставить его писать относительно грамотно.. _________________ Не бывает безвыходных ситуаций. Есть только ситуации, выход из которых тебя не устраивает... Я вернулся =) |
uses crt;
var p,pervoe,poslednee,s:longint; n:integer; begin ReadLn(s); p:=1; while s>0 do begin n:=n+1; if n=1 then pervoe:=s mod 10; poslednee:=s mod 10; s:=s div 10; end; writeln('Первая цифра:',poslednee); Writeln('Последняя цифра:',pervoe); readkey; end. |
readln(s);
write(s[length(s)]); а так сойдет? _________________ |
бл* я дебил намудрил опять.... а надо то было всегото:
r:=k mod 10; вместо: t:=0; a:=10; repeat s:=k/a; a:=a*10; t:=s-int(s); until (0<=t) and (t<1); r:=round(t*10); Добавлено спустя 1 минуту 53 секунды: ладно, с опытом придет... Добавлено спустя 6 минут 9 секунд: vanish не, не катит, это тип string, а мне надо числовой. _________________ Не бывает безвыходных ситуаций. Есть только ситуации, выход из которых тебя не устраивает... Я вернулся =) |
VM писал(а): r:=k mod 10; |
VM писал(а): это тип string, а мне надо числовой.в условие об этом где? числовой это по вашим примерам целочисленый*.. тогда делам так: readln(k); str(k,s); write(s[length(s)]); * на действительных код не робит _________________ |
VM
просто вы делаете деление, а с типом integer нужно использовать целочисленное деление |
vanish писал(а): числовой это по вашим примерам целочисленый*.. можно и вешественный использовать........ vanish писал(а): в условие об этом где? ну впринципе то можно то и строковый, но тогда вместо "case" придется поставить 2 "if"-а.. (и то я это не проверял) а я уже както наделался из них длиннющих цепочек.... такчто больше не хочу.... на счет того, что ты написал: забыл, что такое str(k,s)? P.S. просто не люблю строковым типом пользоваться.. Добавлено спустя 2 минуты 8 секунд: ArtFul ну вот потому то у меня и был тот длинющий код. _________________ Не бывает безвыходных ситуаций. Есть только ситуации, выход из которых тебя не устраивает... Я вернулся =) |
VM писал(а): можно и вешественный использовать........не в моем алгоритме VM писал(а): впринципе то можно то и строковыйхм.. зачем придумывать себе ограничения типов? str это кароче из числа в строку _________________ |
да не себе, некоторые команды не со всеми типами переменных работают.. во избежание ошибок так сказать _________________ Не бывает безвыходных ситуаций. Есть только ситуации, выход из которых тебя не устраивает... Я вернулся =) |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы |