14 / 14 / 5
Регистрация: 16.01.2016
Сообщений: 78
1

Определите, сколько чисел, у которых последняя цифра 3, 5 или 7

02.02.2016, 20:43. Показов 1734. Ответов 5
Метки нет (Все метки)

Доброго времени, уважаемые! решаю задачу :
"Введите множество, состоящее из 20 целых чисел от 1 до 50. Определите, сколько чисел, у которых последняя цифра 3, 5 или 7" .
хотелось бы решить самостоятельно, но за последние 8 часов вопрос встал в первой части задачи "Введите множество, состоящее из 20 целых чисел от 1 до 50."
Pascal
1
2
3
4
5
6
7
8
type
   m:set of 1..50; {диапазон допустимых чисел}
var
   a:arrray [1..20] of m; {вроде как массив каждый элемент может быть 1-50}
begin
  ... {цикл на 20 элементов}
   read(k);
   a[i]:=k {ТУТ ПИШЕТ ОШИБКУ ПРИСВОЕНИЯ}
вообщем пришел к двум решениям вопроса:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
program prog4a;
type
  mas1 = array[1..20] of 1..50 ;{20 чисел из диапазона 1-50}
const
  n=20;           {всего 20 чисел целого типа}
var
  j:mas1;         {переменная ползов. типа}
  i,k:integer;      {переменная цикла}
begin
  writeln('---------------start----------------------');
  for i:=1 to n do
    begin
      writeln('Введите ',i,'-е число от 1 до 50'); {просим ввести число}
      readln(k);                {в переменную к}
      j[i]:=k;                  {запишем в массив}
      write(j[i]:4);              {выведем записанное число}
    end;
  writeln('-----------------end--------------------');
  readln;
end.
Почему после ввод числа больше 50, в 14 строке он проглатывает и записывает в массив?? оно же не входит в диапазон?

и второй более "детский вариант" с проверкой введенного числа ручками
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
program prog4b;
 
const
  n=20;           {всего 20 чисел целого типа}
var
  mas: array [1..n] of integer; 
  v:set of 1..50;
  i,k:integer;      {переменная цикла}
begin
  for i:=1 to n do  {цикл на 20 чисел}
    begin
      repeat
        writeln('Введите ',i,'-е число от 1 до 50'); {просим ввести число}
        readln(k);                       {в переменную к}
      until k in [1..50]; {повторяем ввод если вне диапазона}
    mas[i]:=k;            {иначе запишем в массив}
    end;
  writeln('---------end---------');
  readln;
end.
может дадите разъяснения почему так в первом варианте. И есть ли более красивый вариант ввода 20 чисел в диапазоне 1-50.
С уважением Андрей Валерьевич.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.02.2016, 20:43
Ответы с готовыми решениями:

Дано натуральное число, определите сколько раз в нём встретится последняя цифра
Дано натуральное число, определите сколько раз в нём встретится последняя цифра. решение нужно...

Определите, сколько чисел, у которых последняя цифра 3, 5 или 7
Введите множество, состоящее из 20 целых чисел от 1 до 50. Определите, сколько чисел, у которых...

Определить, сколько среди множества чисел, первая значащая цифра в десятичной записи которых 1 или 2
Задача 6. Дано 100 целых чисел от 1 до 100. Определить, сколько среди них чисел, первая значащая...

Определить, сколько среди чисел тех, первая значащая цифра в десятичной записи которых 1 или 2
Дано 100 целых чисел от 1 до 100. Определить, сколько среди них чисел, первая значащая цифра в...

5
2509 / 1130 / 582
Регистрация: 07.06.2014
Сообщений: 3,281
02.02.2016, 23:38 2
Цитата Сообщение от Андрей Валерьев Посмотреть сообщение
и второй более "детский вариант" с проверкой введенного числа ручками
Нормальный вариант. Вполне достойно. Ты голову себе не морочь, у тебя в конце-концов получился хороший код!
(только переменную v ты не задействовал, можешь её выкинуть из описания)
1
14 / 14 / 5
Регистрация: 16.01.2016
Сообщений: 78
03.02.2016, 04:50  [ТС] 3
Цитата Сообщение от Sergio Leone Посмотреть сообщение
только переменную v ты не задействовал
да хотел ее в 15 строке применить, но не работает((
Pascal
1
until k in v; {повторяем ввод если вне диапазона}
остались два вопроса...
0
2509 / 1130 / 582
Регистрация: 07.06.2014
Сообщений: 3,281
03.02.2016, 10:39 4
Цитата Сообщение от Андрей Валерьев Посмотреть сообщение
да хотел ее в 15 строке применить, но не работает((
чтобы её применить должна быть или заполненная переменная (туда надо записать нужное множество) или, проще, это должна быть банально константа:
Pascal
1
2
3
4
const
  v = [1..50];
....
  until k in v; {повторяем ввод если вне диапазона}

Цитата Сообщение от Андрей Валерьев Посмотреть сообщение
остались два вопроса...
прости, какие вопросы?..
0
14 / 14 / 5
Регистрация: 16.01.2016
Сообщений: 78
03.02.2016, 17:31  [ТС] 5
в первом варианте есть строки
Pascal
1
2
3
program prog4a;
type
  mas1 = array[1..20] of 1..50 ;{20 чисел из диапазона 1-50}
почему когда ниже по программе я ввожу в 15 строке
Pascal
1
 j[i]:=k;
проходят числа больше 50? программа не вылетает. т. е. можно записать и 80 и 100. хотя указали 1..50
0
Почетный модератор
64073 / 47484 / 32734
Регистрация: 18.05.2008
Сообщений: 115,185
03.02.2016, 18:23 6
Лучший ответ Сообщение было отмечено Андрей Валерьев как решение

Решение

Цитата Сообщение от Андрей Валерьев Посмотреть сообщение
Введите множество, состоящее из 20 целых чисел от 1 до 50.
Pascal
1
2
3
4
5
6
7
8
m:=[];
for i:=1 to 20 do
 begin
  repeat;
  x:=1+random(50);
  until  not (x in m);
  m:=m+[x];
 end;
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.02.2016, 18:23

Определить, сколько среди чисел тех, первая значащая цифра в десятичной записи которых 1 или 2
Дано 100 целых чисел от 1 до 100. Определить, сколько среди них чисел, первая значащая цифра в...

Вывести на экран то из чисел, у которых последняя цифра меньше
даны 2 натуральных числа. Вывести на экран то из них, у которх последняя цифра меньше. ЧЕРЕЗ if ...

Найти количество чисел в диапазоне [a;b], у которых последняя цифра равна 7
Вводятся числа a и b. Найти количество чисел в диапазоне , у которых последняя цифра равна 7...

Написать программу, определяющую, сколько среди них чисел, первая значащая цифра в десятичной записи которых - 1 или 2
Здравствуйте, помогите пожалуйста исправить код))) Все работает,но нужно выполнить чтобы считалось...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.