Перевод с языка паскаль на язык с

Алфавит и словарь языка Паскаль

Выучить конспект (алфавит языка, операции и др.), Просмотреть примеры записи выражений и выполнить домашнее задание в конце этого документа

Алфавит и словарь языка Паскаль

Язык – совокупность символов, соглашений и правил, используемых для общения. При записи алгоритма решения задачи на языке программирования необходимо четко знать правила написания и использования языковых единиц. Основой любого языка является алфавит (набор знаков, состоящий из букв, десятичных и шестнадцатеричных цифр, специальных символов).

Алфавит Паскаля составляют:

· прописные и строчные буквы латинского алфавита: A, B, C…Y, Z, a, b, c,…y, z и знак подчеркивания;

· десятичные цифры: 0, 1, 2,…9;

· Неделимые последовательности знаков алфавита образуют слова, отделенные друг от друга разделителями. Ими могут быть пробел, комментарий или символ конца строки.

· Словарь Паскаля можно разделить на три группы слов: зарезервированные слова, стандартные идентификаторы и идентификаторы пользователя.

Зарезервированные слова (см таб.1) имеют фиксированное написание и навсегда определенный смысл. Они не могут изменяться программистом и их нельзя использовать в качестве имен для обозначения величин.

Идентификатор – имя (identification – установление соответствия объекта некоторому набору символов). Для обозначения определенных разработчиками языка функций, констант и т. д. служат стандартные идентификаторы, например Sqr, Sqrt и т. д. В этом примере Sqr вызывает функцию, которая возводит в квадрат данное число, а Sqrt – корень квадратный из заданного числа. Пользователь может переопределить любой стандартный идентификатор, но чаще всего это приводит к ошибкам, поэтому на практике их используют без изменения. Идентификаторы пользователя – это те имена, которые дает сам программист. При записи программ нужно соблюдать общие правила написания идентификаторов:

· Идентификатор начинается только с буквы или знака подчеркивания(исключение составляют специальные идентификаторы меток).

· Идентификатор может состоять из букв, цифр и знака подчеркивания.

· Максимальная длина – 127 символов, а значащими являются 63 символа.

· При написании идентификаторов можно использовать прописные и строчные буквы.

· Между двумя идентификаторами должен стоять хотя бы один пробел.

Некоторые зарезервированные слова версии Турбо Паскаль

Источник

Перевести программу с Паскаля на [любой-язык]

Конкурс окончен, смотрите результаты в конце вопроса.

Я думаю, многие из вас видели вопросы, состоящие из просьбы перевода программы с одного языка на другой. Давайте-ка покажем, как делать такие вещи правильно! В нашем конкурсе мы исходим из такой простой программы на Паскале:

Задание состоит в следующем: вы должны перевести программу на любой-язык так, чтобы сохранить как можно больше от исходного текста программы. В качестве целевого языка, понятно, исключаются языки группы Паскаля (Delphi, Algol, Oberon, Modula, etc., все языки, в которых используется begin / end для группировки команд в составную команду).

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

Ограничения: Строки исходной программы между begin и end должны сохранять свой смысл. Они должны выполняться, и при их выполнении должно происходить в общих чертах то же, что и в исходной программе: readln должно считывать значения с консоли, c := a + b должно складывать значения двух переменных (или что там есть в вашем языке) в третью, writeln должно выводить правильный результат на консоль. (Это означает, что вы не можете просто закомментировать код первоначальной программы.)

В частности, полное совпадение кода выигрывает у неполного независимо от количества подготовительного кода.

Для того, чтобы было легче проверять ваш код, старайтесь публиковать ссылку на онлайн-компилятор с вашим кодом. Код должен компилироваться без ошибок (пусть даже с предупреждениями) и правильно работать в диапазоне входных чисел от 0 до 1000.

Продолжительность конкурса — 1 неделя.

Для исключения разночтений, при неясности в правилах пожалуйста переспрашивайте в комментариях или в чате, посвящённом code golf.

Для примера, вот внеконкурсное решение на plain TeX:

(Если кому интересно, гольфированный вариант.) Транскрипт компиляции:

Просьба к отвечающим писать в начале решения ваш язык, количество изменённых символов и количество символов в подготовительном коде. Также просьба давать не более одного решения на ответ.

Обновление: Конкурс окончен, вот результаты.

Побеждает ответ @Mike, сумевший уложиться в 78 подготовительных символов, и не поменять ни символа в исходном коде.

Другой ответ того же автора выглядит чрезвычайно изящно (подключение паскалевского синтаксиса как внешний модуль, хей!), и почти выиграл приз зрительских симпатий, но проигрывает по количеству символов вследствие своей большей общности. Оба решения пользуются особенностью языка Perl, который в своих модулях позволяет предобработку текста на Perl самим Perl’ом. Мощный язык, мощные средства управления синтаксисом, заслуженная победа.

Второй в списке победителей — ответ @Qwertiy. Это решение продолжает идею «получить текст как строку, обработать, чтобы получился код на нужном языке, и выполнить над ней eval », с симпатичной, очень техничной и компактной реализацией (регулярки!).

Приз зрительских симпатий получает неожиданный ответ @kmv. В этом решении текст исходной программы не объявляется строкой, а «вытягивается» из кода функции! (Это, формально говоря, решение не по стандарту, но фактически в распространённых браузерах toString() работает именно так.)

Третье место получает решение @pavel с комбинацией Unix shell/C, которое обходится без eval за счёт замены строк до компиляции и использования препроцессора C. Такой подход позволяет справиться с двоеточиями, которые вызывают затруднения для препроцессора у чистых решений на C/C++.

Тему интерпретации продолжает ещё одно решение @nuts119 на C# с использованием DataTable как arithmetic engine. Это решение, при всей его сложности, имеет дальний прицел на построение полноценного интерпретатора.

Оставшиеся решения на чистом C/C++ и Javascript/Typescript без eval вынуждены модифицировать исходный текст, хотя они смогли обойтись минимальным количеством изменений. Из этих решений наилучшие с одним удалённым символом решения @kmv (C, препроцессор, использование битовых полей) и @Qwertiy (C++, тонкости препроцессора). Интересно, что эти оба решения убирают из исходного текста соседние символы: из := убрано в первом случае двоеточие, а во втором — знак = (!).

Оставшиеся четыре решения (@Qwertiy, typescript, @pavel, C++, препроцессор (заработало больше голосов, чем победитель), снова @Qwertiy, javascript и @Grundy, C, препроцессор) меняют больше символов в исходном коде, но также интересны и стоят вашего внимания.

Большое спасибо всем, кто принимал участие в конкурсе!

Таблица лидеров: (спасибо @Grundy за адаптацию скрипта и @jfs за идею)

Источник

Перевод с языка паскаль на язык с

Почему-то вообще не получается.Никак не могу вникнуть. помогите,если не сложно.Для Вас же это нетрудно и быстро должно быть. пожалуйста,очень нужно.

1.
Program Factorial;
uses Crt;
var
a,b,c:real;
N:Integer;
i:integer;
X:integer;
begin
clrscr;
Write(‘Aaaaeoa cia?aiea X:’);
Readln(x);
Write(‘Aaaaeoa cia?aiea N:’);
Readln(n);
a:=1;
For i:=1 to N do
a:=a*x;
Writeln(‘?acoeuoao:’,a);
b:=1;
For i:=1 to N do
b:=b*i;
Writeln(‘?acoeuoao:’,b);
c:=a/b;
writeln(‘?acoeuoao:’,c);
end.

2.
program summa;
const
N =3;
Type
matrix = Array[1..n,1..n] of Integer;
var
A,B,C : matrix;
i,j: Integer;

procedure Fill(var M:Matrix);
var i,j:integer;
begin
for i:=1 to N do
for j:=1 to N do
M[i,j]:=random(50);
end;

procedure vivod(M:matrix);
var
i,j:Integer;
begin
writeln;
for i:=1 to n do
begin
for j:=1 to N do
write(M[i,j]:4);
writeln;
end;
end;

begin
randomize;
Fill(A);vivod(a);
Fill(B);vivod(b);
for i:=1 to N do
for j:=1 to N do
C[i,j]:= A[i,j]+B[i,j];
vivod(c);
end.

3.
Program func;
Const
Sp=’ ‘;
VAR
S:String;
i:Byte;
BEGIN
WriteLn(‘Enter the string containing Tabs:’);
ReadLn(S);
i:=0;
Repeat
Inc(i);
If Ord(S[i])=9 then
begin
Delete(S,i,1);
Insert(Sp,S,i);
Inc(i,2);
end;
Until i>=Length(S);
WriteLn(S);
ReadLn;
END.

4.
while (i i1 then
begin
str:=Copy(stmp,i1,i2-i1);
Delete(stmp,i1,i2-i1);
for j:=1 to Length(str) do
for k:=1 to Length(str)-j do
if Ord(str[k])>Ord(str[k+1]) then
begin
min:=str[k+1];
str[k+1]:=str[k];
str[k]:=min;
end;
Insert(str,stmp,i1);
end;
end;

writeln(‘Result:’);
writeln(stmp);
readln;
end.

Просмотр похожих постов всегда хорошо помогает в решении проблем

Подсказка вам:
типы переменных real=вещ, integer=цел
циклические конструкции:
for <> to <> do
нц для <> от <> до <> шаг <>
серия
кц
массив=таблица, например, вещ таб а[10]
length()=длин()

read() = ввод ()
write()=вывод()

Что-то вы тут фигню-с сморозили

Школьный алгоритмический язык основывается на алголоподобном алгоритмическом языке с русскими операторами, разработанном в середине 80-х командой Ершова. Изначально среда программирования на ШАЯ называлась E-86, реализация была включена в комплекс Роботландия, также существовала версия KUMIR для УКНЦ, она поставлялась в составе КУВТ в школы, после проект был надолго заброшен. В настоящее время поддерживается НИИСИ и доступен по ссылкам КУМир (комплекс учебных миров) и http://lpm.org.ru/wordpress/?page_id=5. В настоящее время язык относится к free-soft и существуют версии под наиболее распространенные операционные системы, в том числе и под Linux. Современная реализация написана на языке C++ и QT и имеет встроенные средства для перевода листинга с алгоритмического языка на C++ и компиляции программы.

Насколько мне известно, про псевдокод такого сказать нельзя, потому как до сих пор ещё не написали систему, способную корректно переводить разговорную речь в реальный листинг

Кстати, скачайте систему КУМир и справочку почитайте, там много полезного и очень даже развернуто все команды и конструкции описаны

Источник

Оцените статью
( Пока оценок нет )
Поделиться с друзьями
Uchenik.top - научные работы и подготовка
0 0 голоса
Article Rating
Подписаться
Уведомить о
guest
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии