Вопрос: Pascal Не могу понять почему надо писать два раза end; | Onpioneer

Pascal Не могу понять почему надо писать два раза end;

Вот так не работает
Program xyini;
uses crt;
var m, n:integer;
begin
writeln(‘тут куй’);
readln(m, n);
write(m);
write(‘ and ‘);
writeln(n);
if m = n then
writeln(‘тут ровный куй’);
end
else
begin
if m > n then begin
writeln(‘тут толстый куй’);
write(‘толщина ‘);
writeln(m);
write(‘длина ‘);
writeln(n);
end
else
begin
writeln(‘тут длиный куй’);
write(‘толщина ‘);
writeln(m);
write(‘длина ‘);
writeln(n);
end;
end.

А вот этот работает
Program xyini;
uses crt;
var m, n:integer;
begin
writeln(‘тут куй’);
readln(m, n);
write(m);
write(‘ and ‘);
writeln(n);
if m = n then
writeln(‘тут ровный куй’);
end
else
begin
if m > n then begin
writeln(‘тут толстый куй’);
write(‘толщина ‘);
writeln(m);
write(‘длина ‘);
writeln(n);
end
else
begin
writeln(‘тут длиный куй’);
write(‘толщина ‘);
writeln(m);
write(‘длина ‘);
writeln(n);
end;
end;
end.
†Tensei zangetsa†
потому что конструкция «begin .. end» — это операторные скобки, математику знаешь? что там насчет скобок? здесь та же херняSevillia Teddyson5
Всего 1 ответ.

Другие интересные вопросы и ответы

Возможно ли изучить программирование за лето?

Айдар Храмов32

Смотря что ты хочешь изучить и что имеешь ввиду под программированием.

Если html+css — да, вполне возможно. Но это верстка а не программирование. SQL — так же возможно, но и работу с БД я так же не могу назвать настоящим программированием.

Если же брать серьезное программирование — однозначное нет. Минимум год самообучения по 8-12 часов в день. Минимум — если у тебя уже есть некая база и неплохо поставленная логика. Значительно больше если нет.
У меня была очень сильная база (я несколько лет работал в IT конторе мирового масштаба(входит в первую десятку по размеру) международной тех.поддержкой высшего уровня[там было 5 таких] а так же QA[тестировщиком], а так же некую базу программирования уже имел), но у меня пошло пол года по 8-12 часов в день что бы достичь некоего более-менее неплохого уровня на C#. По факту недостаточного что бы работать полноценным программистом. Но все же достаточного для автоматизации.

Реальное программирование — это не просто синтаксис языка. Программирование — это умение решать задачи. Как математические так и логические. Логические — в первую очередь! А так же знание ряда алгоритмов. А так же знание инструментов которыми пользуешься(например нужно понимать как внутри устроен List/LinkedList и Array для того,что бы их правильно оптимально использовать, просто знать что длинна аррея не меняется — НЕ ДОСТАТОЧНО). Синтаксиса языка НЕ ДОСТАТОЧНО кто бы тебе не говорил обратного.

Что бы не быть баснословным, я наведу простой пример использования алгоритмов:

Алгоритм среднего между 2мя целыми числами нормального человека:
(a+b)/2
алгоритм среднего из 2х целых чисел программиста(умного, а не в кавычках):
a/2+b/2+(a%2+b%2)/2
где % — вычисление остачи от деления.

потому как первый алгоритм даст ровно в половине из возможных случаев неправильный ответет из-за переполнения памяти + еще в четверти случаях просто на одиницу меньше нужного. Заметьте! Не ошибку! А неправильный ответ в трех случаях из 4х! А «программист»(именно в кавычках) еще и не будет в курсе почему так 🙂

Для нецелочисленного типа данных(double, float) проще:
a/2+b/2

Как видишь, проблема не в синтаксисе как таковом 🙂 Выучить синтаксис — как раз наименьшая из проблем. Хотя, замечу, что, даже, это для многих будет непосильной задачей.

С другой стороны — я за то что бы не грузить человека «паттернами» и излишними алгоритмами. На новичков это подействует, скорее всего, негативно, чем позитивно. Типа…. «я слышал про паттерн ____________, вот задача на которую КАЖЕТСЯ подойдет он.» А потом решение задачи усложняется в разы. Ну или затягивается. Паттерны нужно не только знать, но и применять с умом. К алгоритмам так же нужны знания как и когда их лучше применять. Поэтому — БЕЗ ФАНАТИЗМА.

PS: человек снизу, который меня активно критикует(Jone Done), даже путает среду разработки и язык… Delphi — это не язык, а IDE, а язык там это Object Pascal.
Так же там в коментариях у нее я проверил ее «нормальные знания джавы»… Желающие посмотреть на «номально выучившую язык за 2,5 месяца» смотреть туда. И это при том что Я ДЖАВУ НЕ ЗНАЮ, а, так, посмотрел инфу не более чем 3 дня где-то пол года назад просто для общего развития и что бы лично сложить свое собственное мнение по языку.

Валерій Пістольний49
Всего 8 ответов.

Как сделать так что бы программа в Паскале складывала числа, например от 1 до 10 (1 и 10 включительно)

Никишин С.7

Можно сложить с помощью цикла:

var

i, s, a, b: integer;

begin

readln(a, b);

s := 0;

for i:=a to b do

s := s + i;

writeln(s);

end.

А можно с помощью формулы суммы первых n-членов арифметической прогрессии:

var

s, a, b: integer;

begin

readln(a, b);

s := trunc(((a+b) / 2)*(b-a+1));

writeln(s);

end.

Информатик БУ2
Проще использовать формулу арифметической прогрессии. Быстрее посчитать по ней. Формула: Сумма арифметической прогрессии = где d — насколько увеличивается каждый следующий член по отношению к предыдущему, a1 — начальный член ряда, n — количество членов в ряде.В Вашем случае:a1 = 1, d = 1, n — сколько пожелаете сложить чисел.Далее используем формулу и считаем. Несложно.Andrew G.6
Всего 2 ответа.

хуй тебе, а не факты. :с два раза пишу — два раза вылетает. Т.Т АБИДНААА Могу в лс начиркать, если нужно.

Гость3
я тебя тоже любью.
херачь в лс.
Alex_The_Drop1
Всего 1 ответ.

Почему в конце некоторых программ на Pascal подряд два оператора readln?

Один оператор нужен обязательно, чтобы увидеть результат, or else — программа закроется до нажатия клавиши enter и итог работы лишь мелькнёт на доли секунды.

Но в некоторых программах перед end стоит сразу два этих оператора:

Readln;

Readln;

end.

В чём причина такого синтаксического устройства? Почему один оператор уже не справляется?

P.S. Изучаю Free Pascal третий день 😀

Русаков1

ReadLn считывает данные до первого символа переноса строки. В случае, когда эта процедура используется без параметров — это означает ожидание нажатия клавиши ENTER на клавиатуре.

Зачем использовано два подряд ReadLn — сказать сложно, не имея перед глазами текст программы. Возможно, по каким-то причинам нужно два раза нажать ENTER. Или по логике первый ReadLn перехватывает нажатый ранее ENTER, а второй нужен для просмотра содержимого терминала и выхода из программы нажатием того же ENTER. Но это лишь предположения.

Julia­931
Всего 1 ответ.

Паскаль. Нужно при одном условие вывести два 0 0, а иначе два других ответа. Как это провести ?

Если M<3, то я должен вывести два нуля на двух разных строках, а иначе вывести через разные строки s1 и s2,типо
0
0
или
s1
s2
, но как все это объяснить паскалю, я незнаю. Вот что примерно у меня получилось :

If (M<0) then writeln(0) and writeln(0) else
writeln(S1) and writeln(S2);
Guest7

Наверное, нужно писать по 2 раза каждый вывод: if m<3 then begin writeln(0);writeln(0) end else begin writeln (s1);writeln(s2) end;

Гость2
Всего 1 ответ.
Вам также может понравиться
Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *