Помогите найти ошибку в программе. PascalABC
Каждую программу написать с использованием подпрограмм (процедуры или функции)
1. Дано натуральное число. Найти первую и последнюю цифры числа. Program Lab51; procedure Poisk(an:string); var p,t,i:integer; begin p:=Ord(an[1])-Ord('0'); i:=Length(an); t:=Ord(an[i])-Ord('0'); Writeln('Pervaya cifra = ',p); Writeln('Poslednyaya cifra = ',t); end; var s:string; begin Writeln('Cislo:'); Readln(s); Writeln; Poisk(s); end. В программе, когда вбиваешь число например: 56, выводит все правильно первая 5 вторая 6, но также если вбить: "уйц", то выводит первая цифра 195, а вторая 198. Помогите найти ошибку препод вынес мозг. |
Госс-споди, да что Вы там накрутили-то? На кой пёс Вам коды?! Уж если Вы считываете вводимое число, как строку, так и выводите первый и последний символы, да и всё тут! Например, так:
Код:
Program Lab51; |
Владимир Игоревич, программку писал я. Через код из символов в ответ выводятся числа. Но не это важно(кто как хочет, так и делает).
Мне не понятно зачем вбивать "уйц" если в задании сказано, что дано натуральное число. Кстати было предоставлено 2 варианта: через "string" и через "LongInt". |
Цитата:
Кстати, подумал, что не худо бы такой фильтрик состряпать: предполагаю, что беды нашего страждущего проистекают от того, что зловредный преп вводит "уйц" и, тыкая пальцем в результат, вопрошает: "это чё?", слыша в ответ, естественно, "му-у..." Ладно, сейчас перекурю и прикину. |
Ну вот, вариант с фильтром:
Код:
Program Lab51; |
Цитата:
|
Цитата:
|
Часовой пояс GMT +4, время: 01:47. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.