Нужно перевести код с паскаля на питон PROGRAM reader;
USES crt;
TYPE mas=array[1..80]of char;
masid=array[1..80] of integer;
maskluch=array[1..62] of string;
cifra=set of '0'..'9';
bukv=set of 'a'..'z';
BUKV2=set of 'A'..'Z';
VAR
{строки}
s,s1,s2,sb,sb1: string[80];
chislo:string[33];
{счетчики}
dlina,dlina1,kol,j,i,n,kolp,kolt,kolk,n1,n2: integer;
{массивы}
b,mb,mz,mc: mas;
mk,ms,mt,mp: maskluch;
{множества}
c: cifra;
bukva: bukv;
BUKVA2: BUKV2;
{файлы}
f,g: text;
{}
{$I TRANS.pas}
{$I LEKSIKA.pas}
{$I IDENT.pas}
{$I SINTAKS.pas}
{}
BEGIN
initial; {чтение из файла}
trans; {транслитерация: с-буква, ' '-пробел}
leksika; {лексический блок: символ входного языка - класс символа}
ident; {идентификация: какое из слов соответствует заданному идентификатору}
sintaksis; {синтаксический блок: соответствует ли цепочка формулам}
END.
xN = -5: xK = 5: h = 0.1
x = xN: i = 1
Do While x <= xK
y = 3 * x ^ 2 - 6 * x + 5
Cells(i, 1) = x: Cells(i, 2) = y
x = x + h: i = i + 1
Loop
End Sub
Во вложении файл с рабочей книгой MS Excel 2003. Макрос на листе 1.
Теперь о Вашей ошибке
Dim xN, xK, x As Integer
Dim y, h As Single
xN = -5
...
h = 0.1
x = xN
...
x = x + h
Такое описание означает, что xN, xK будут типа Variant, х - типа Integer.
y тоже будет типа Variant, h - типа Single.
При выполнении опeратора x=x+h целочисленное x сначала увеличится на 0.1, а затем дробная часть будет отброшена. Поэтому х постоянно будет равен xN и цикл станет бесконечным.
А (Расширение BMP обычно используется для хранения растровых изображений. .BMP – это стандартный, не сжатый битовый графический формат, используемый в Windows. BMP файл хранить графику в формате, который называется аппаратно-независимый растр (DIB от англ. Device Independent Bitmap). Файл .BMP состоит из заголовка файла (растровый идентификатор, размер файла, ширина, высота, варианты цвета, и растровые данные начальной точки), заголовка изображения (может отсутствовать), палитры (может отсутствовать) и самого изображения.)