ВНИМАНИЕ! На форуме началось голосование в конкурсе - астрофотография месяца АПРЕЛЬ!
0 Пользователей и 1 Гость просматривают эту тему.
Цитата: CyberManiac от 11 Фев 2023 [13:53:11]Потому что она стоила штуку баксов и очень долго не имела бесплатной версии. И Турбо Паскаль тоже был не бесплатный вообще-то. А у народа как заведено: какая забесплатно даст, та и красавица. Короче, вся история чисто про бабло.То есть вы утверждаете что в падении популярности виноват маркетинг?
Потому что она стоила штуку баксов и очень долго не имела бесплатной версии. И Турбо Паскаль тоже был не бесплатный вообще-то. А у народа как заведено: какая забесплатно даст, та и красавица. Короче, вся история чисто про бабло.
Может у народа "так" и заведено, но это коммерческий софт, за который платит контора. Для неё цена лицензии меньше месячной зарплаты одного разработчика.
Откуда возьмётся разработчик? А откуда берутся разработчики стремительно набирающих популярность Golang? Rust?Или TypeScript, Kotlin, Swift? Многие специализируются даже не на языках а на фреймворках, React, Django.
program Z_17_10;var P1, P2 : integer; { ганицы платной дороги } R1, R2 : integer; { границы ремонтируемого участка } RPL, RCLL : integer; { длины ремонтируемых платного и бесплатного }BEGIN write('Платный участок: '); read(P1, P2); write('Ремонтируемый участок: '); readln(R1, R2); write('Будут ли ремонтировать ВЕСЬ платный участок? '); if (P1>=R1) and (P2<=R2) then writeln(' -- Да') else writeln(' -- Нет'); { будут ли ремонтировать хотя бы часть платного участка P1--P2 ? * Если да, то определить длину ремонтируемой платной части * } write('Будут ли ремонтировать ЧАСТЬ платного участка? '); if (R2<=P1) or (R1>=P2) then begin writeln(' -- Нет'); RPL:=0; end else begin writeln(' -- Да'); if P2<R2 then RPL:=P2 else RPL:=R2; if P1>R1 then RPL:=RPL-P1 else RPL:=RPL-R1; writeln('Длина ремонтируемого платного участка ', RPL); end; { Будут ли ремонтировать хотя бы часть бесплатного участка? * Если да, то определить длину ремонтируемой бесплатной части. * } write('Будут ли ремонтировать хотя бы часть бесплатного участка? '); if (R1>=P1) and (R2<=P2) then writeln(' -- Нет') else begin writeln(' -- Да'); RCLL:=R2-R1-RPL; writeln('Длина ремонтируемого бесплатного участка ', RCLL); end; readln;END.
Да, чё-то народ решил сделать кучу малУ из всех существующих систем программирования.
В инете есть масса форумов по Паскалю - когда я на нём программировал, все вопросы адресовал туда, где получал компетентный ответ.
В инете есть масса форумов по Паскалю - когда я на нём программировал, все
Но да, автору надо ближе к астрономии было взять отрезки не из дорожного строительства, а как , скажем, пути между обитаемыми звёздами или участками трасс звездолётов ВЦ, да и лучей радиосигналов, чтобы по их пересечениям найти некие вероятности по программе SETI, CETI. Или попроще для тренировки, вывести на небосклон отрезки центральных линий и контуры границ одного, выборочных из списка, или всех 88 созвездий.
а для астрономов язык Паскаль самое то, он ближе всего к строгому математического описанию задач небесной механики, без сишных двусмысленностей и переопределения матсимволов, и ясного алгоритмического решения астрометрических проблем. Можно убедиться на примере исходников SkyChart
Вузовские учебники расчитаны на уже подготовленную аудиторию. К тому же хотелось, что бы был FP, т.к. у меня Линукс.
vari: integer;S, R: string;beginReadln(S);R:='';for i:=1 to Length(S)-1 do R:=R+S[i]+' ';Writeln(R);Readln;end.
program Z_18_5;var i, L : integer; S, R : string; BEGIN repeat writeln('Введите строку: '); readln(S); if S = '' then break; { выход из цикла, если строка пустая } R:=''; { инициализировали строк. переменную } L:= length(S); for i:=1 to L do begin R:= R + S[i]; { склеиваем строку по символу } if i<L then R:= R + '_'; { к последнему знаку добавлять раздел. знак не надо } end; writeln('Получаем: ', R); until false; { бесконечный цикл } END.
Автор специально даёт неправильные ответы?
Идея в ответе автора понятна, я сперва хотел сделать нечто похожее, но возникла трудность, что к последнему знаку клеить раздел уже не нужно, поэтому клеил строку по символу, а когда номер i становится равным последнему индексу строки при помощи условного перехода исключил прибавление к нему разделительного знака.
Можно ли написать прогу без условного перехода, как у меня, что бы она работала правильно?
var i: integer; s: String;begin readln(s); for i:=1 to Length(s) do begin if i <> 1 then write('_'); write(s[i]); end; Readln;end.
Походу просто забыл одну строчку.
var i: integer; S, R: string;begin Readln(S); R:=''; for i:=1 to Length(S)-1 do R:=R+S[i]+' '; R:=R+S[Length(S)]; { вот эта строчка } Writeln(R); Readln;end.
Важнее другое: оба варианта создают лишнуюю строковую переменную для результата, хотя по условию задачи текст нужно только напечатать.
напечатает введенную пользователем строкувразрядку
В котором надо прилепить к строке послений символ.
А можно так - изменить 2 строки :
Пока начал процедуры и функции
Всё в Geany, или Lazarus поставили ?