Домашние задания: Информатика

Информатика 8 класс. Начало программирования на языке Паскаль.

Составить программу на диапазон . Помогите, на завтра очень нужно!!!!

Подробнее распишу в комментарии к этому ответу (т. е. с пояснениями). Т. е. что какая команда означает - см. в комментарии. Вопросы - аналогично можете задавать в комментариях (простите, оперативность гарантировать не могу, т. е. могу отвечать через длительное время). И да, я не понял: что надо вывести на экран - значение y (полученное путем вычислений) или диапазон (т. е. например, при x=1, надо вывести y=1 (т. е. т. к. y=x) или "Нет решений")? Ладно на этом участке буду выводить (вернее, не я, а программа) "y={например} 1, но на данном участке -3<x<3 решения не существует, т. к. происходит деление на 0".
Итак:
Program Diapazon;
uses crt;
var x, y: real;
begin
clrscr;
write ('Введите число x: ');
readln (x);
if x>3 then begin
y:=x+2;
write ('y=', y, '; x принадлежит интервалу (3; +бесконечность).');
if -3<x<3 then begin
y:=x
write ('y=', y, ', но на данном отрезке (-3<x<3) решений не существует, т. к. происходит деление на 0 или подкоренное значение принимает отрицательное значение.');
end;
if x<-3 then begin
y:=x-2;
write ('y=', y, '; x принадлежит интервалу (-бесконечность; -3).');
end;
readkey;
end.
Зухраб Курбанов
Зухраб Курбанов
43 548
Лучший ответ
Dowlet Orazgeldiyew У автора условие задачи неверно/неполное: что делать при значениях "-3" и "3"?!
Зухраб Курбанов Значит (т. к. комментарий меньше символов поддерживает, чем программа, то напишу {№ строки) } комментарий, т. е., например 1-я строка (Program Diapazon;) будет выглядеть так (в пояснении, не в программе!): 1) Название программы.
Итак,
1) Название программы (может быть любым - главное на латинице и если присутствуют цифры, то они должны идти после букв)
2) Подключаем модуль crt (модуль текстового экрана, окна и клавиатуры)
3) Описываем используемые переменные. Тип real, т. к. могут быть дроби (в отличие от целочисленного integer).
4) Начало выполнения программы ("общий begin"). Обратите внимание: после begin точка с запятой НЕ СТАВИТСЯ.
Немного не умещается (ну вот такие короткие комментарии, к сожалению).
Зухраб Курбанов Значит дальше:
5) clrscr - очищаем экран (в некоторых Pascal - в частности Turbo Pascal) может выводиться лишняя информация (например, версия Pascal) - так вот мы ее убираем, и начинаем с чистого листа (т. е. с чистого пустого экрана). Необязательно (т. е. можно не писАть, но если напишете, то это - признак хорошего тона. Я рекомендую писАть.
6) Выводим текст в апострофах (любой - можете сократить до 'x=', если хотите). Обратите внимание: write, есть еще writeln (но writeln - перенос на следующую строку, а просто write - в текущей строке без переноса). В общем, здесь вводим с клавиатуры (при выполнении программы) x и жмем Enter
7) Считываем (аналогично есть read и readln) без Enter'а, т. е. сразу переходим дальше, без заморочек, поэтому readln.
Опять не умещается.
Зухраб Курбанов 8) Так и понимать (английский язык - основа многих языков программирования, Pascal - 1 из таких): Если x>3 то выполнить (begin можно перенести на следующую строчку, но лично мне удобнее так - а Вы - как хотите). Если бы у нас было только что-то 1 (действие, например, то без begin-end (да - знаменитые "скобки") можно обойтись, например x=2 и все. Но нам надо выполнить несколько действий, поэтому здесь без "скобок" begin-end не обойтись.
9) y присваивается значение (обратите внимание: двоеточие и равно) в Вашем случае - вычисление: введенное значение x + 2, т. е., например, 4+2 (если x был введен как 4).
10) Вывести на экран текст: "y=" значение y; {интервал}. Т. к. неравенство строгое (строго >, а не больше либо равно, то скобка - круглая).
Опять не умещается.
Зухраб Курбанов Опять продолжаю:
11) Черт, end; забыл: смотрите внимательнее. Эх, жаль редактировать не успеваю. В общем, end; должно быть. С точкой с запятой - у нас конец только этой части программы, а не всей. Т. е. конец этого begin'а, а не общего.
12) Далее - повторяется для других: (т. е. если x<3 - вычислить, вывести на экран, конец
Да, кстати, в y=x я точку с запятой забыл. Да, переутомился.
Эээ... какая-то строчка (уже пишу нормально без номеров - считать лень), в общем, readkey - ждать нажатия клавиши Enter пользователем, не вылетать (как любит Turbo Pascal - мелькнет выполненная программа - незаметно - и закроется сама.
Ну и end. (end с точкой - конец выполнения всей программы). Все, наконец-таки...
Зухраб Курбанов Т. е. вот правильный текст:
Program Diapazon;
uses crt;
var x, y: real;
begin
clrscr;
write ('Введите число x: ');
readln (x);
if x>3 then begin
y:=x+2;
write ('y=', y, '; x принадлежит интервалу (3; +бесконечность).');
end;
if -3<x<3 then begin
y:=x;
write ('y=', y, ', но на данном отрезке (-3<x<3) решений не существует, т. к. происходит деление на 0 или подкоренное значение принимает отрицательное значение.');
end;
if x<-3 then begin
y:=x-2;
write ('y=', y, '; x принадлежит интервалу (-бесконечность; -3).');
end;
readkey;
end.
Зухраб Курбанов Ну а для простого ориентирования пронумерую строки:
1) Program Diapazon;
2) uses crt;
3) var x, y: real;
4) begin
5) clrscr;
6) write ('Введите число x: ');
7) readln (x);
8) if x>3 then begin
9) y:=x+2; - на этом этапе пропустил end; т. е. 10-ой должна быть end;, а остальное - с11-ой.
10) write ('y=', y, '; x принадлежит интервалу (3; +бесконечность).');
if -3<x<3 then begin
y:=x
write ('y=', y, ', но на данном отрезке (-3<x<3) решений не существует, т. к. происходит деление на 0 или подкоренное значение принимает отрицательное значение.');
end;
if x<-3 then begin
y:=x-2;
write ('y=', y, '; x принадлежит интервалу (-бесконечность; -3).');
end;
readkey;
end.
это вроде вроде определение Y методом итерации, расписывать нудно и долго, проще возьми конспект и подставь все условия, в школьном курсе все задачи топорные и однотипные.