• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите написать программу на языке Паскаль

Тимурка174

Ученик
Регистрация
20 Дек 2010
Сообщения
6
Реакции
0
Баллы
0
Помогите написать программу на языке Паскаль

Составить линейную программу, печатающую значение true, если указаное высказывание является истинным, и false- в противном случае
Данная тройка натуральных чисел a,b,c является тройкой пифагора. т.е. C в квадрате = A в квадрате + B в квадрате
 
Составить линейную программу, печатающую значение true, если указаное высказывание является истинным, и false- в противном случае
Данная тройка натуральных чисел a,b,c является тройкой пифагора. т.е. C в квадрате = A в квадрате + B в квадрате
Во-первых, не цепляйтесь к чужим темам - создавайте свои. Сейчас я это сделал за Вас. А во-вторых, учитесь, а не ориентируйтесь на то, что всю жизнь за Вас всё будут делать глупые добрые дяденьки. Если уж с такой ерундой Вы прибегаете на форум, то что будет дальше?
Ладно, в порядке исключения (но вообще-то мы подобным детским садом не занимаемся):
Код:
VAR
 a,b,c:WORD;
BEGIN
 Write('a= ');
 ReadLn(a);
 Write('b= ');
 ReadLn(b);
 Write('c= ');
 ReadLn(c);
 WriteLn(a*a+b*b=c*c);
 Readln;
END.
 
помогите пожалуйста написать программу на языке паскаль пожалуйста

посчитать количество целых среди чисел a,b,c
 
Тимурка174
Вы вообще представляете себе, как работает компьютер? Если вы определяете переменную вещественного типа, то она уже отрабатывается процессором именно как число с плавающей точкой, а не как целое и любое значение будет также не целым. Если же вы эти 3 переменные определите как целочисленные - то и ответ будет очевидным.
Если уж вам кровь из носа нужно решить именно ваш вариант задания - используйте при сравнении значений функцию округления с отбрасыванием остатка trunc() или, на худой конец, round().
 
вот такое решение как вам??

var a,b,c,F,S,R,D:integer;
begin
writeln('введите числа');
readln(a,b,c);
If a mod 1=0 then S:=F+1;
If b mod 1=0 then R:=S+1;
If c mod 1=0 then D:=R+1;
writeln(D);
readln;
end.
 
var a,b,c,F,S,R,D:integer;
begin
writeln('введите числа');
readln(a,b,c);
If a mod 1=0 then S:=F+1;
If b mod 1=0 then R:=S+1;
If c mod 1=0 then D:=R+1;
writeln(D);
readln;
end.
Примерно так: абсолютно бессмысленный набор команд. Вы хоть какую задачу решить пытаетесь? И каким путем - расскажите словами идею. Попытаемся разобраться.
 
я пытаюсь сделать так чтобы при воде 3 любых чисел она находила три целые числа
 
я пытаюсь сделать так чтобы при воде 3 любых чисел она находила три целые числа
Не пойдет.
Насколько я понимаю задачу, состоит она в следующем:
Даны три ВЕЩЕСТВЕННЫХ числа. Определить, сколько из них - целые. То есть, например, если вводятся числа 9.76, 15.0 и 134.0, то ответ - два числа.
Теперь рассмотрим Вашу программу.
1. Формат всем переменным Вы задаете Integer, т.е. целочисленный. В таком случае, задача лишается смысла, поскольку числа ИСХОДНО целые. Если Вы попробуете ввести что-нибудь типа 4.8, то программа немедленно вылетит с сообщением об ошибке.
2. Вы вообще представляете себе, что такое (a mod b)? Похоже, нет. Так вот, это ОСТАТОК от деления ЦЕЛОГО a на ЦЕЛОЕ b. Отсда если b=1, то этот остаток ВСЕГДА РАВЕН НУЛЮ, и выражение
If a mod 1=0 then
бессмысленно, поскольку условие ВСЕГДА ИСТИННО, а потому критерием чего-либо служить не может.

Так что попробуйте изобрести что-нибудь другое.
Между прочим, подсказка содержится в посте #4 от AlexZir.
 
PHP:
var a,b,c:real;
begin
readln(a,b,c);
writeln("Целых чисел: ", byte(frac(a)=0)+byte(frac(b)=0)+byte(frac(c)=0));
readln
end.
 
Ладно, Тимурка - не буду Вас мучить. Всё-таки Вы, в отличие от многих других прочих, что-то пытаетесь сделать, а это уже само по себе ценно.

Задача решается так.
Прежде всего, необходимо ввести некоторые, как бы, договоренности. Будем считать, что вещественные числа a, b и c определены с точность, допустим, до третьего знака после запятой, то есть числа типа 5.000007, 11.999996 и т.п. будем считать целыми. Кроме того, договоримся, что числа не слишком большие и не превышают 2000000. Тогда
Код:
VAR
 a,b,c:Real;
 n:Byte;
Begin
 WriteLn('Enter a, b  and c:');
 ReadLn(a,b,c);
 n:=0;
 If Round(a*1000)=Round(a)*1000 then n:=n+1;
 If Round(b*1000)=Round(b)*1000 then n:=n+1;
 If Round(c*1000)=Round(c)*1000 then n:=n+1;
 WriteLn('n= ',n);
 ReadLn;
END.
Разберем, как работает программа.
Функция Round(x) округляет вещественное число до ближайшего целого, при жтом результат получается в формате LongInt. Таким образом, если введено число 12.000007, то сравниваются
Round(12.000007*1000)=Round(12000.007)=12000
и
Round(12.000007)*1000=12*1000=12000,
т.е. число - целое. А вот если исходное число, например, 12.015, то имеем:
Round(12.015*1000)=Round(12015.0)=12015
и
Round(12.015)*1000=12*1000=12000,
не совпали, т.е число - дробное.
 
PHP:
var a,b,c:real;
begin
readln(a,b,c);
writeln("Целых чисел: ", byte(frac(a)=0)+byte(frac(b)=0)+byte(frac(c)=0));
readln
end.
Да, пожалуй так даже лучше.
Ну вот, совсем другое дело.
Единственная ошибка - в Паскале при выводе сообщений используются не двойные кавычки, а апострофы. Т. е. правильно
writeln('Целых чисел: ', ...

P.S. Тимурка, а где это Вы, простите за любопытство, раскопали как правило недокументированнные (во всяком случае, малоизвестные) возможности Паскаля? Я имею в виду функцию byte(b:boolean)?
 
Назад
Сверху