ответ: на Python
оба задания делаются внутри одного кода. Первая часть квадратов рисуется по верхней границе, вторая часть - по нижней. Если нужно будет разделить на 2 программы - в тексте оставил комментарии что нужно будет убрать. :)))
from tkinter import*
class Rec(Frame):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
#k =30
#b = 20
k=int(input('Длина стороны первого квадрата : '))
b=int(input('Шаг изменения длинны стороны последующих квадратов :'))
lt =0
a=k # 'a' добавлена потому что обе части задания в одном коде
self.master.title("1")
self.pack(fill=BOTH, expand=1)
canvas = Canvas(self, bg="white")
# Этот кусок кода для 1 части задания
for i in range(0,4):
canvas.create_rectangle(lt, 0, lt+a, a, outline="#000")
lt = lt +a
a = a+b
# Конец 1 части
# Этот кусок кода для 2 части задания
lt=0
a =0
while a*4 < 200:
canvas.create_rectangle(lt, 300, lt+a, 300-a, outline="#000")
lt = lt +a
a = a+b
# Конец 2 части
canvas.pack(fill=BOTH, expand=1)
def main():
root = Tk()
ex = Rec()
root.geometry("300x300")
root.mainloop()
if __name__ == '__main__':
main()
var a:array[1..n] of integer;
i,i1,i2,x:integer;
begin
Randomize;
a[1]:=random(10);
write(a[1],' ');
for i:=2 to n do
begin
a[i]:=a[i-1]+random(10);
write(a[i],' ');
end;
writeln;
write('x = '); readln(x);
i1:=1; i2:=n;
repeat
i:=(i1+i2) div 2;
if a[i]<x then i1:=(i1+i2) div 2+1;
if a[i]>x then i2:=(i1+i2) div 2-1;
until (a[i]=x)or(i1>i2);
if a[i]=x then
begin
writeln('Искомый(ые) номер(а) элемента(ов):');
while (i>0)and(a[i]=x) do i:=i-1;
i:=i+1;
while (i<=n)and(a[i]=x) do begin write(i,' '); i:=i+1; end;
end
else writeln('Элемент не найден');
writeln;
end.
Пример:
5 6 14 15 15 22 30 36 45 45 50 56 60 64 67 76 84 92 99 101
x = 15
Искомый(ые) номер(а) элемента(ов):
4 5