Причин, по которой в школах на информатике изучают именно PascalABC, а не Python (Ладно хоть не JS), в общем говоря две - Адекватная и не очень.
Адекватная причина заключается в том, что в отличии от пайтона, паскаль - компилируемый язык со статической типизацией. Такие языки не прощают ошибок, если ты что то сделал не так - ты сразу же получаешь ошибку компиляции и идёшь перепиливать, а не обнаруживаешь свой косяк, когда кое-что уже попало на вентилятор.
Паскаль познакомит юного маслёнка с основными понятиями программирования в достаточно понятной форме. Программные блоки в языке Pascal выделяются ключевыми словами begin-end, что при минимальных знаниях английского будет восприниматься человеком намного проще, чем операторные скобки С-подобных языков, или питоньи отступы. Так же у паскаля в описаниях циклов присутствуют дополнительные ключевые слова, опять же более ясно дающие понять, что дальше будет происходить. Вот сравни, что понятнее (цикл for):
C/C++:
for (int i = 1; i < some_counter; i++) { //Code }
PascalABC.NET:
for var i := 1 to some_counter do begin
//code
end;
Паскалевский "фор" как то более подробно себя описывает, не так ли?
Или вот например чтение входного потока:
Читаем переменную i:
C++:
cin >> i;
PascalABC.NET
var i := ReadInteger();
Ну и куча других мелочей.
А вот почему в школах учат именно Турбо Pascal, А не, например, его современную версию PascalABC.NET - Проблема вероятно в программах обучения, составленных ещё в далёкие годы, и с тех пор не менявшихся. Да и большинство преподавателей информатики в школах мало знакомы с какими либо языками кроме древнючего турбопаскаля и сурового и беспощадного С. И это печально. Надеюсь, я ответил на твой вопрос.
В ЭВМ применяется двоичная система счисления, т.е. все числа в компьютере представляются с нулей и единиц, поэтому компьютер может обрабатывать только информацию, представленную в цифровой форме.
Для преобразования числовой, текстовой, графической, звуковой информации в цифровую необходимо применить кодирование. Кодирование – это преобразование данных одного типа через данные другого типа. В ЭВМ применяется система двоичного кодирования, основанная на представлении данных последовательностью двух знаков: 1 и 0, которые называются двоичными цифрами (binary digit – сокращенно bit).
Таким образом, единицей информации в компьютере является один бит, т.е. двоичный разряд, который может принимать значение 0 или 1. Восемь последовательных бит составляют байт. В одном байте можно закодировать значение одного символа из 256 возможных (256 = 2 в степени 8). Более крупной единицей информации является килобайт (Кбайт), равный 1024 байтам (1024 = 2 в степени 10). Еще более крупные единицы измерения данных: мегабайт, гигабайт, терабайт (1 Мбайт = 1024 Кбайт; 1 Гбайт = 1024 Мбайт; 1 Тбайт = 1024 Гбайт).
Целые числа кодируются двоичным кодом довольно просто (путем деления числа на два). Для кодирования нечисловой информации используется следующий алгоритм: все возможные значения кодируемой информации нумеруются и эти номера кодируются с двоичного кода.
Например, для представления текстовой информации используется таблица нумерации символов или таблица кодировки символов, в которой каждому символу соответствует целое число (порядковый номер). Восемь двоичных разрядов могут закодировать 256 различных символов.
Существующий стандарт ASCII (8 – разрядная система кодирования) содержит две таблицы кодирования – базовую и расширенную. Первая таблица содержит 128 основных символов, в ней размещены коды символов английского алфавита, а во второй таблице кодирования содержатся 128 расширенных символов.
Так как в этот стандарт не входят символы национальных алфавитов других стран, то в каждой стране 128 кодов расширенных символов заменяются символами национального алфавита. В настоящее время существует множество таблиц кодировки символов, в которых 128 кодов расширенных символов заменены символами национального алфавита.
Так, например, кодировка символов русского языка Widows – 1251 используется для компьютеров, которые работают под ОС Windows. Другая кодировка для русского языка – это КОИ – 8, которая также широко используется в компьютерных сетях и российском секторе Интернет.
Но использование различных кодовых страниц для национальных алфавитов (применение 8 – разрядной системы кодирования) создает проблемы для обмена файлами между разными узлами сети Интернет. С целью устранения недостатков стандарта ASCII, организация Unicode внедрила новый стандарт универсальной системы UNICODE, основанный на 16 – разрядном кодировании символов.
В первой версии Юникода была представлена кодировка с фиксированным размером символа в 16 бит (два байта). Эта 16 – разрядная система обеспечивает универсальные коды для 65536 различных символов, т.е. в этой таблице могут разместиться символы языков большинства стран мира.
Но внедрение фиксированной 16 – разрядной системы кодирования символов (UTF-16) привела бы к увеличению объема текстовых файлов в два раза. В настоящее время Юникод имеет несколько форм представления: UTF-8, UTF-16 и UTF-32. UTF-32 использует для кодирования любого символа 32 бита, а UTF-8 и UTF-16 используют для представления символов переменное число байтов.
Фактически сейчас применяется кодировка UTF-8, которая обеспечивает совместимость с системой ASCII, использующей 8-битные символы. Символы ASCII занимают один байт в UTF-8 и используют те же биты. Остальные символы Юникода, которые не относятся к символам ASCII, кодируются переменным числом байтов от двух до четырех.
Для кодирования графических данных применяется, например, такой метод кодирования как растр. Координаты точек и их свойства описываются с целых чисел, которые кодируются с двоичного кода. Так черно-белые графические объекты могут быть описаны комбинацией точек с 256 градациями серого цвета, т.е. для кодирования яркости любой точки достаточно 8 - разрядного двоичного числа.
Режим представления цветной графики в системе RGB с использованием 24 разрядов (по 8 разрядов для каждого из трех основных цветов) называется полноцветным. Для поноцветного режима в системе CMYK необходимо иметь 32 разряда (четыре цвета по 8 разрядов).
Объяснение:
Поделитесь своими знаниями, ответьте на вопрос:
В заданной строке найти самое длинное слово - Мал золотник да дорог! В Python у строкового типа данных есть метод split(), который разделяет слова по пробелу (или другому символу, если он передан в качестве аргумента Получается список слов. Далее из этого списка можно извлекать отдельные слова, обращаясь к ним по индексам. Для решения задачи разбейте строку на слова, возьмите за самое длинное слово - самое первое, а дальше с цикла “for...in range” сравнивайте слова с первым.
Python 3.7
import re
import string
def clrStr(strng: str) -> str:
return re.sub(r' +', ' ', re.sub(rf'[{string.punctuation}]|\n', '', strng))
raw_string = input()
clean_string = clrStr(raw_string)
print(max(clean_string.split(' '), key = lambda p: len(p)))
И никаких велосипедов с перебором всего списка слов в цикле.
Объяснение:
Да, я специально решил эту задачу не так, как просят в условии. Ведь в условии вам максимально разжевали подход к решению. Но, стоит заметить, что по дурацки. Питоньи списки можно перебирать циклом вида for item in list, не обращаясь к исходному списку по индексам. Так же функция max() может принимать аргумент key, который является функцией, с которой интерпретатор будет выбирать максимум из указанного списка.