Инфоурок Информатика КонспектыТексты - решения программ на Паскале по учебнику 10 класс

Тексты - решения программ на Паскале по учебнику 10 класс

Скачать материал

Задачи №4-11 из учебника 10 класса.

4. Дано натуральное трехзначное число n, в записи которого нет нулей. По предложенной записи алгоритма (псевдокод и в виде блок-схемы), определите результаты работы алгоритма.

В приведенной записи DIV и MOD соответственно операции деления нацело и получения остатка от целочисленного деления. В фигурных скобках записаны пояснения (комментарии) к операторам.

 

Read(n) {Ввод N}

A := n mod 10 {разряд единиц}

B := n div 100 {разряд сотен}

C := n div 10 mod 10 {десятки}

L := (n mod A=0) and (n mod B=0) and (n mod C=0)

Write ( L) {Вывод L}

 

Переведите алгоритм на язык программирования и получите работающую программу.


 

program ch4_4;

 

var

   n,a,b,c: word;{беззнаковое целое}

   l : boolean;

begin

   write('Натуральное трехзначное число ==>');

   readln(n);

   a := n mod 10;

   b := n div 100;

   c := (n div 100) mod 10;

   l := ( (n mod a) = 0) and ( (n mod b)=0) and ((n mod c)=0);

   writeln(l);

end.

 

 

5. По предложенным записям алгоритма напишите программу вычисления значения функции

Read (x)

If (x–12)

Y:=–x2

else

if (x<0)

Y:=x4

else

Y:= x–2

Write (Y)

 

Протестируйте полученную программу, используя не менее трех тестовых наборов, чтобы можно было проверить все переходы.

 

program ch4_5;

 

var

   x,y: double;{вещ с двойной точностью}

begin

   write('Значение аргумента ==>');

   readln(x);

   if  x <= -12 then

      y := -x*x

   else

      if x <0 then

         y := x*x*x*x

      else

         y := x-2;

   writeln(y);

end.

 

 

 

6. Даны записи двух алгоритмов подсчета количества нечетных цифр в натуральном числе n. Слева решение оформлено с использованием цикла с предусловием, справа – с постусловием.

Выберите любой способ и переведите его на язык программирования. Протестируйте полученную программу.

Алгоритмы реализуют следующую идею. Из числа выбирается цифра младшего разряда, проверяется на нечетность и затем отбрасывается. Нечётные цифры учитываются. Этот процесс повторяется до тех пор, пока число не исчерпается, т.е. не станет равным нулю.

да

 

Read(n)

K := 0

While ( n <> 0)

if (n mod 10 mod 2 = 1)

K := K + 1

n := n div 10

Write (K)

Read ( n)

K = 0

Do

if (n mod 10 mod 2 = 1)

K = K + 1

n := n div 10

While (n <> 0 )

Write (K)

 

 

program ch4_6_1;

 

var

   n: word;

   k: byte;{беззнаковое короткое целое}

begin

   write('Число N ==>');

   readln(n);

   k := 0;

   while  n <> 0 do

   begin

      if  (n mod 10) mod 2 = 1 then

         k := k+1;

      n := n div 10;

   end;

   writeln(k);

end.

 

program ch4_6_2;

 

var

   n: word;

   k: byte;

begin

   write('Число N ==>');

   readln(n);

   k := 0;

   repeat

      if  (n mod 10) mod 2 = 1 then

         k := k+1;

      n := n div 10;

   until n =0;

   writeln(k);

end.

 

 

 

 

 

 

7. Используя предлагаемые записи алгоритма, напишите программу нахождения произведения первых k натуральных чисел, кратных трём.

Read(k)

P = 1 {здесь накапливаем произведение}

For I := 1 to k/3

P = P * I * 3

Write(P)

 

 

 program ch4_7;

 

var

   k,i: word;

   p: longword;

begin

   write('Число K ==>');

   readln(k);

   p := 1;

   for i:=1 to k do

      p := p*i*3;

   writeln(p);

end.

 


 

 

8. Напишите программу решения следующей задачи.

 

Лотерейный номер состоит из трех чисел, каждое из которых может быть от 0 до 99 включительно. Определите шанс угадать выигрышный лотерейный номер.

Идея решения. Надо вычислить количество перестановок для заданного числа объектов (3), которые выбираются из общего числа объектов (100). Перестановка – это любое множество объектов, в котором внутренний порядок имеет значение. Формула определения числа перестановок имеет следующий вид:

 

 

Следовательно, надо написать функцию, вычисляющую факториал некоторого числа M (M!=1*2*3*4*…*M) и вычислить количество перестановок.

 

 

program ch4_8;

 

function a_n_k( n,k : word):longword;

var

   i,p : longword;

begin

   p := 1;

   for i := n downto n-k+1 do

      p := p *i;

   a_n_k := p;

end;

 

begin

   writeln ('Количество сочетаний из 100 по 3: ', a_n_k(100,3)); 

end.

 


 

9. Напишите программу заполнения массива X(N) положительными и отрицательными элементами. Из него требуется сформировать новый массив только из положительных элементов. Найти из них наибольший элемент. Распечатать новый массив и наибольший элемент.

 

program ch4_9;

 

var

   x,y : array[0..100] of integer;

   i,count : word;

   max : integer;

  

begin

   for i:=0 to 100 do

      x[i] := random(200)-100;

   count := 0;

   max := -1;

   for i:=0 to 100 do

      if x[i] > 0 then

      begin

         y[count] := x[i];

         if y[count] > max then

            max := y[count];

         inc(count);

      end;

   writeln ('Результат:');

   for i:=0 to count-1 do

      write(y[i],' ');

   writeln;

   writeln ('Максимальный элемент:', max);

end.

 

 


 

10. Напишите программу, в которой предлагается список учащихся разных классов, посещающих футбольную секцию. Требуется упорядочить список по возрастанию классов. Распечатать список фамилий и классов.

program ch4_10;

 

type

   schooler = record

      fio : string;

      age : word;

   end;

 

var

   schoolers : array[1..100] of schooler;

   i,lim : word;

   swap : boolean;

   buf : schooler;

  

begin

   for i:=1 to 10 do

   begin

      writeln('Ученик №',i);

      write('ФИО ==>');

      readln(schoolers[i].fio);

      write('Класс ==>');

      readln(schoolers[i].age);

   end;

  

   lim := 9;

   repeat

      swap := false;

      for i:=1 to lim do

      if schoolers[i].age > schoolers[i+1].age then

         begin

            swap := true;

            buf := schoolers[i];

            schoolers[i] := schoolers[i+1];

            schoolers[i+1] := buf;

         end;

         lim := lim-1;

   until not swap;

 

   writeln ('По возрастанию классов:');

   for i:=0 to 10 do

      write(schoolers[i].fio,', ',schoolers[i].age,' класс.');

end.


 

 

11. Напишите программу нахождения минимального элемента первой строки массива К(n, n), заполненного случайными числами.

 

program ch4_11;

 

const

   N = 100;

 

var

   k: array[1..N,1..N] of integer;

   i,j,min: byte;

  

begin

   for i:=1 to N do

      for j:=1 to N do

         k[i,j] := random(10000)-10000;

   min := 1;

   for i:=2 to N do

      if k[1,i] < k[1,min] then

         min := i;

   writeln ('Минимальный элемент первой строки: K[1,',min,']=',k[1,min]);

end.

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Тексты - решения программ на Паскале по учебнику 10 класс"

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Политолог

Получите профессию

Фитнес-тренер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 665 181 материал в базе

Скачать материал

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 15.02.2016 1975
    • DOCX 57.9 кбайт
    • 15 скачиваний
    • Оцените материал:
  • Настоящий материал опубликован пользователем Баруцкова Юлия Олеговна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Баруцкова Юлия Олеговна
    Баруцкова Юлия Олеговна
    • На сайте: 8 лет и 6 месяцев
    • Подписчики: 0
    • Всего просмотров: 137244
    • Всего материалов: 33

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Методист-разработчик онлайн-курсов

Методист-разработчик онлайн-курсов

500/1000 ч.

Подать заявку О курсе
  • Сейчас обучается 142 человека из 46 регионов

Курс профессиональной переподготовки

Теория и методика обучения информатике в начальной школе

Учитель информатики в начальной школе

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 97 человек из 34 регионов
  • Этот курс уже прошли 222 человека

Курс профессиональной переподготовки

Информационные системы и технологии: теория и методика преподавания в профессиональном образовании

Преподаватель информационных систем и технологий

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Этот курс уже прошли 13 человек

Курс профессиональной переподготовки

Информационные технологии в профессиональной деятельности: теория и методика преподавания в образовательной организации

Преподаватель информационных технологий

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 191 человек из 54 регионов
  • Этот курс уже прошли 974 человека

Мини-курс

Профессиональное развитие бизнеса: стратегии и инструменты

6 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Стратегии карьерного роста и развития

10 ч.

1180 руб. 590 руб.
Подать заявку О курсе

Мини-курс

Фитнес: особенности построения смешанных групповых тренировок

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Этот курс уже прошли 20 человек