profile
Размещено 5 лет назад по предмету Информатика от ragimovanasiba1Н

Сколько точек с целыми координатами попадают в треугольникAOB находящийся в первой четверти?
НАПИШИТЕ ПРОГРАММУ В ПАСКАЛЬ .ПОЖАЛУЙСТА!!!!!!!!!!!!!!!!!!!СРОЧНО!!!!!!!!!!!!!

  1. Ответ на вопрос
    Ответ на вопрос дан petyaGavrikov
    Решение далеко не самое эффективное, но зато очень простое:
    var a,b,x,y,k:integer;
    begin
    write('a, b:');
    readln(a,b);
    k:=0;
    for x:=0 to a do
     for y:=0 to b do
      if y<=-(x-a)*b/a then k:=k+1;
    writeln('k = ',k);
    end.

    Пример:
    a, b:
    4 3
    k = 11

    PS. Точки, лежащие на осях координат и на стороне AB, тоже подсчитываются. Если они не нужны, то циклы начинайте с 1 и в условии используйте строгое равенство.
  2. Ответ на вопрос
    Ответ на вопрос дан Аккаунт удален
    Во вложении приведен рисунок, из которого видно принятое расположение треугольника. Треугольник прямоугольный и уравнение его гипотенузы можно получить из формулы уравнения прямой в отрезках.
    Алгоритм решения следующий.
    1. Вводим значения a и b.
    2. Очищаем переменную счетчика количества k нулём.
    3. В цикле по х от 0 с шагом 1 до целой части b:
    - вычисляем целую часть y, найденного из приведенного уравнения
    - увеличиваем k на эту целую часть плюс 1
    4. Выводим значение k.

    Проверим этот алгоритм для нашего рисунка.
    a=3, b=4, y=³/₄(4-x), k=0
    Для х=0 получаем у=3 и увеличиваем k на 3+1=4, т.е. k=4
    Для х=1 получаем у=2.25, целая часть 2 и увеличиваем k на 2+1=3, т.е. k=7
    Для х=2 получаем у=1.5, целая часть 1 и увеличиваем k на 1+1=2, т.е. k=9
    Для х=3 получаем у=0.75, целая часть 0 и увеличиваем k на 0+1=1, т.е. k=10
    Для х=4 получаем у=0, целая часть 0 и увеличиваем k на 0+1=1, т.е. k=11
    Значение 11 выводим.
    Из рисунка видно, что точек действительно 11.

    1. Современное решение

    // PascalABC.NET 3.2, сборка 1425 от 22.04.2017
    // Внимание! Если программа не работает, обновите версию!

    begin
      var a,b:real;
      Write('Введите значения a и b через пробел: '); Read(a,b);
      Writeln(Range(0,Trunc(b)).Select(x->Trunc(a/b*(b-x))+1).Sum)
    end.

    Контрольный пример
    Введите значения a и b через пробел: 3 4.0
    11

    2. Школьное решение в стиле ТурбоПаскаль 1983г.

    var
      a,b,y:real;
      k,x:integer;
    begin
      Write('Введите значения a и b через пробел: '); Read(a,b);
      k:=0;
      for x:=0 to Trunc(b) do begin
        y:=a/b*(b-x);
        k:=k+Trunc(y)+1
        end;
      Writeln(k)
    end.



    1. Ответ на вопрос
      Ответ на вопрос дан ragimovanasiba1Н
      огромное спасибо
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.