Условия всех задач из категории C1

Проверяемые элементы содержания: умение прочесть фрагмент программы на языке программирования и исправить допущенные ошибки
 
 
 
 

Историческая справка и теоретические сведения

Язык программирования – специальная кодовая система для записи компьютерных программ. Каждый язык программирования обладает определенной семантикой, лексикой и синтаксисом. В мире придумано и реализовано свыше 8000 тысяч языков программирования, но востребованными являются не более 20 – 30 различных языков.

Синтаксис языка – набор правил, определяющий конструкции языка и формат их представления.

Семантика языка – набор правил, определяющий содержание и смысл конструкций языка.

Наиболее популярные языки программирования:

  • C;

  • C++;

  • C#;

  • Java;

  • Basic;

  • Pascal;

  • Delphi;

  • Oberon;

  • Ada;

  • Fortran;

  • Assembler.

Абсолютное большинство задач из данной категории реализуют какой-либо элементарный алгоритм (нахождение корней квадратного уравнения, попадание заданной точки в заштрихованную область и т. п.), имеющий от 2 до 7 неточностей. Как правило, ошибки проявляются в записи условных выражений, заголовков циклов, выхода индексов элементов массива за допустимые границы.

 

Расстояние между двумя точками на плоскости вычисляется по следующей формуле:

 

Натуральное число - число, возникающие естественным образом при счёте (как в смысле перечисления, так и в смысле исчисления).
Пример натуральных чисел: 23, 90, 8934, 2.
Для справки: ноль к натуральным числам не относится.

Цифра - составляющая любого числа, то есть любой число состоит из цифр (разрядов).
Пример: число 128 состоит из трех цифр (трех разрядов), причем существует следующая градация цифр. Относительно числа 128 имеем:

  • 1 - количество сотен;

  • 2  - количество десяток;

  • 8 - количество единиц.

128 = 1 · 100 + 2 · 10 + 8 = 100 + 20 + 8 = 128

 

Минимальный элемент - элемент массива, имеющий наименьшее значение среди всех элементов массива.
Если массив содержит несколько элементов, имеющих наименьшее значение, то имеет смысл говорить о нескольких минимальных элементах.

Массив - упорядоченный набор данных, для хранения данных однородного типа, идентифицируемых с помощью одного или нескольких индексов.
Каждый элемент массива характеризуется двумя параметрами:

  • значение;

  • номер (индекс).

Графическая интерпретация одномерного символьного массива, состоящего из 10 элементов:

TRABERITTZзначение
12345678910номер

 

Массивы имеют широкую классификацию, поэтому приведем, лишь наиболее популярные из них.
Классификация массивов по количеству измерений:

  • одномерные;

  • двухмерные;

  • трехмерные;

  • многомерные.

Классификация массивов по типу используемой памяти:

  • статические массивы;

  • динамические массивы.

 

Методические указания

Для успешного решения задач из данной категории вы должны:

  1. проанализировать данный фрагмент программного кода;

  2. провести графическую интерпретацию запрограммированного алгоритма;

  3. выяснить допущенные ошибки программистом при создании кода;

  4. подобрать некоторые входные данные, на которых программа выдает некорректный результат;

  5. исправить все неточности в программе, чтобы она корректно работала при любых входных данных.

 
 
 
 

Задача №1

Дано:
окружность на плоскости задана координатами центра и радиусом. Даны две окружности. Требовалось определить, имеют ли они точку касания. Программист торопился и написал программу неправильно.

var
    x1, y1, r1, x2, y2, r2 : real;
begin
    clrscr;
    writeln;
    write('Введите координаты и радиус 1 - й окружности: ');
    readln(x1, y1, r1);
    write('Введите координаты и радиус 2 - й окружности: ');
    readln(x2, y2, r2);
    if (sqrt(sqr(x2 - x1) + sqr(y2 - y1)) = r1 + r2) or
        (sqrt(sqr(x2 - x1) + sqr(y2 - y1)) = abs(r1 - r2)) then
        write('Да')
    else
        write('Нет');

 

Найти:
последовательно  выполните  следующее:

  1. приведите пример таких исходных данных, при которых программа работает неправильно;

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

 
 
 
 
 
 

Задача №2

Дано:
требовалось написать программу нахождения количества цифр в записи натурального числа А. Программист торопился и написал программу неправильно.

Код программы:

var
    a, s : longint;
begin
    writeln(‘Введите число:);
    readln(a);
    s := 0;
    while a ≥ 10 do
        a := a div 10;
    s := s + 1;
    writeln(s);
end.

 

Найти:
последовательно  выполните  следующее:

  1. приведите пример таких исходных данных, при которых программа работает неправильно;

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

 
 
 
 
 
 

Задача №3

Дано:
требовалось написать программу нахождения местоположения первого из минимальных элементов целочисленного массива  (предполагается, что в массиве может быть несколько одинаковых минимальных элементов). Программист торопился и написал программу неправильно.

const
    N = 10;
var
    a : array[1..N] of integer;
    i, min, k : integer;
begin
    writeln('Введите элементы массива');
    for i := 1 to N do
        readln(a[i]);
    min := a[1];
    for i := 2 to N do
        if(a[i] <= min) then
        begin
            k := i;
            min := a[i];
        end;
    writeln(k);
end.

 

Найти:
последовательно выполните следующее:

  1. приведите пример таких исходных данных, при которых программа работает неправильно;

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

 

 
 
 
 
 
 

Задача №4

Дано:
из заданного натурального числа А получить число В, поменяв порядок цифр на обратный. Программист торопился и написал программу неправильно:

var
    a, b: integer;
begin
    write(‘Введите натуральное число‘);
    read(a);
    b := a mod 10;
    if a > 10 then
        while a > 10 do
        begin
            a := a div 10;
            b := b*10 + a mod 10;
        end;
    write(‘Новое число  ‘, b);
end.

 

Найти:

  1. приведите    пример    таких    исходных    данных,   при которых программа работает неправильно;

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

 
 
 
 
 
 
© 2011-2024 ООО "СтадиМен". Все права сохранены.
Перепечатка и использование материалов с данного сайта, разрешена только по согласию с владельцем.
Владелец оставляет за собой право воспользоваться 146 статьей УК РФ при нарушении авторских и смежных прав.
 
 
 
 
Авторизация на сайте
 
 
 
Обнаружили
ошибку на сайте?