Как найти первую цифру числа pascal

0 / 0 / 0

Регистрация: 19.11.2015

Сообщений: 20

1

Найти первую цифру числа

12.04.2017, 06:02. Показов 46994. Ответов 8


Студворк — интернет-сервис помощи студентам

Дано натуральное число n. Найти первую цифру



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

12.04.2017, 06:02

8

VladimirD

80 / 80 / 78

Регистрация: 30.12.2015

Сообщений: 256

12.04.2017, 06:19

2

Pascal
1
2
3
4
5
6
7
8
9
10
11
program Project1;
Var
 i,n:integer;
begin
readln(n);
repeat
 i:=n mod 10;
 n:=n div 10;
until n=0;
writeln('первая цифра =',i);
end.



1



0 / 0 / 0

Регистрация: 19.11.2015

Сообщений: 20

12.04.2017, 06:21

 [ТС]

3

Спасибо



0



Puporev

Почетный модератор

64287 / 47586 / 32739

Регистрация: 18.05.2008

Сообщений: 115,182

12.04.2017, 09:07

4

Правильно так. Число может быть<=0.

Pascal
1
2
3
4
5
6
7
8
9
10
var n:integer;
begin
readln(n);
n:=abs(n);
if n>9 then
repeat
 n:=n div 10;
until n<10;
writeln('Первая цифра=',n);
end.



0



80 / 80 / 78

Регистрация: 30.12.2015

Сообщений: 256

12.04.2017, 09:16

5

По условию задачи

Цитата
Сообщение от EvGENJho
Посмотреть сообщение

Дано натуральное число



0



Puporev

Почетный модератор

64287 / 47586 / 32739

Регистрация: 18.05.2008

Сообщений: 115,182

12.04.2017, 09:19

6

Ну тогда только убрать

Pascal
1
n:=abs(n);

Просто у Вас лишняя переменная i, и лишние телодвижения с mod.



0



white0prof-

1 / 1 / 1

Регистрация: 25.06.2019

Сообщений: 17

27.06.2019, 09:06

7

Pascal
1
2
3
4
5
6
7
8
9
var
  x: integer;
 
begin
  write('Введите число: ');
  read(x);
  while(x >= 10) do x := x div 10;
  write('Первая цифра числа: ', x);
end



0



Супер-модератор

Эксперт Pascal/DelphiАвтор FAQ

32569 / 21040 / 8131

Регистрация: 22.10.2011

Сообщений: 36,314

Записей в блоге: 8

27.06.2019, 09:08

8

white0prof-, думать прежде чем писать нужно, а не после. Вводим 10 и что получаем?



1



1 / 1 / 1

Регистрация: 25.06.2019

Сообщений: 17

27.06.2019, 09:10

9

блин. Я знак равенства не добавил xd



0



Узнай цену своей работы

Формулировка задачи:

Используя цикл с пред условием найти первую цифру числа n

Код к задаче: «Найти первую цифру числа n»

textual

Листинг программы

var n:integer;
begin
  readln(n);
  while n>10 do
  n:=n div 10;
  writeln(n);
end.

Полезно ли:

5   голосов , оценка 4.000 из 5

Похожие ответы

  1. Дано целое число K. Найти произведение цифр числа К
  2. Найти сумму первых M цифр числа N
  3. Найти сумму цифр числа, записанного прописью
  4. Проверить, будут ли все цифры числа различными
  5. Дано натуральное число n. Проверить,будут ли все цифры числа различными.
  6. Для заданного натурального числа n найти старшую цифру
  7. Найти все трехзначные числа, сумма квадратов цифр которых кратна заданному числу m
  8. Определить номер первой по порядку цифры натурального числа N
  9. Найти сумму цифр в чётных числах заданного списка
  10. Отсортировать массив в порядке убывания и найти разницу первого и последнего элементов
  11. Определить сумму цифр числа

IPB

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется …
2. Все тексты программ должны помещаться в теги [code=pas][/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. «FAQ«, если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение — только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы — на PM!
6. Одна тема — один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Первая цифра числа, процедуры

сообщение 6.11.2010 4:49

Сообщение
#1


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Женский
Реальное имя: Ольга

Репутация: -  2  +



Ребята! Кто-может, подскажите, пожалуйста, а то уже мозги кипят и я на грани нервного срыва. Задачка для первоклассников: «Найти первую цифру целого числа (использовать процедуру)»,
а не могу понять часть текста в ней.

Program cifra;
var
k,n:integer;
begin
write('Введите число: ');
readln(n);
while n<>0 do
begin
k:=n mod 10; {???}
n:=n div 10; {???}
end;
writeln(‘Первая цифра числа’,k);
readln
end.

Как понять следующее: k:=n mod 10;
n:=n div 10
Почему так???

Сообщение отредактировано: Lapp — 6.11.2010 5:21

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

TarasBer

сообщение 6.11.2010 4:58

Сообщение
#2


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +



Для положительных чисел так:
mod — остаток при делении
div — целая часть деления

Очевидно, что остаток при делении целого положительного числа на 10 — это его последняя цифра.

———————

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

Провинциалка

сообщение 6.11.2010 5:05

Сообщение
#3


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Женский
Реальное имя: Ольга

Репутация: -  2  +



Я попробовала написать вместо k:=n mod 10 просто K:=n — оказывается программа все равно правильно работает. Для чего нужен был mod, не понятно

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

volvo

сообщение 6.11.2010 5:17

Сообщение
#4

Гость



Цитата

Для чего нужен был mod, не понятно

Я тебе даже больше скажу:

readln(n);
while n > 9 do
n:=n div 10;

writeln('Первая цифра числа = ', n);

тоже будет работать. Зачем здесь вообще K — непонятно.

Кстати, а процедура-то где?

 К началу страницы 

+ Ответить 

sheka

сообщение 6.11.2010 5:21

Сообщение
#5


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +



Ну если Program заменить на procedure, а точку на запятую — будет подпрограмма)

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

Lapp

сообщение 6.11.2010 5:23

Сообщение
#6


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +



М Провинциалка, называй темы в соответствии с Правилами, пожалуйста

———————

я — ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)

Пользователей: 0

500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают

Связь с администрацией: bu_gen в домене octagram.name

Программа(только для положительных чисел!):

var num,prev:integer;
begin
readln(num);
while num>0 do begin
  prev:=num;
  num:=num div 10;
end;
writeln(prev);
end.

Блок-схема описывается примерно так:
1. Получаем число
2. Отбрасываем одну его цифру
3. Если получили 0, то выводим то, что было до отбрасывания(переменная prev), иначе переходим к пункту 2.

Также не вполне честный, но тоже эффективный вариант:
var s:string;
begin
readln(s);
writeln(s[1]);
end.

Program cifra;
 
function firstDigitOf(i: integer): integer;
begin
  i:= abs(i);
  while i >= 10 do i:= i div 10; 
  firstDigitOf:= i;
end;
 
var
  n: integer;
begin
  Write('Введите число: ');
  ReadLn(n);
  WriteLn( 'Первая цифра числа: ', firstDigitOf(n) );
  ReadLn;
end.

Следующий вариант

Program cifra;
procedure firstDigitOf(i: integer;var k:byte);
begin
  i:= abs(i);
  while i >= 10 do i:= i div 10;
  k:= i;
end;
var n:integer;
    k:byte;
begin
  Write('Введите число: ');
  ReadLn(n);
  firstDigitOf(n,k);
  WriteLn( 'Первая цифра числа: ',k);
  ReadLn;
end.

Понравилась статья? Поделить с друзьями:
  • Как найти свой айпи в ксс
  • Как найти цвет pantone в иллюстраторе
  • Как найти адрес в набережных челнах
  • Как найти заброшенный портал в майнкрафт
  • Ашан москве как найти