Во-первых, не whill, а while. Во-вторых, цикл с предусловием(while) выполняется только тогда, когда его условие возвращает ложь. Если условие возвращает правду, цикл завершается. Бывает так, что при попытке первой итерации цикла условие уже возвращает правду. В этом случае цикл не будет выполнен ни разу. Цикл с предусловием(repeat), наоборот, выполняется, пока условие возвращает правду и завершается ложью. Стоит заметить, что если цикл с предусловием проверяет своё условие перед итерацией, цикл с постусловием делает это после, а это значит, что последний выполнится хотя бы один раз.
0. Начало 1. Ввод - Гвозди, картина молоток, стена 2. Операция - Прибить гвоздь к стене при молотка 3. Условие - Гвоздь прибит к стене? Нет->Повторить пункт 2; Да->Переходим к пункту 4 4. Повесить картину на гвоздь 5. Конец
Ну это если не заморачиваться с условиями. К примеру можно после 4 пункта поставить условие на проверку положения картины, т.е Картина висит прямо? ->Нет то Действие выровнять положение картины; Да->Конец
UPD: Ещё можно создать условие на состояние гвоздя - погнутый или целый, вытаскивание погнутого гвоздя и т.д.
1 вариант:
vara, b, c, min: integer;
beginmin:=0;
readln(a, b, c);
if (a<b) and (a<c) then min:=a;
if (b<a) and (b<c) then min:=b;
if (c<a) and (c<b) then min:=c;
writeln(min);
end.
2 вариант:
Var a:array[1..3] of integer;
i,z:integer;
beginfor i:=1 to 3 do
Readln(a[i]);
z:=a[1];
for i:=2 to 3 do
begin
if a[i]<z then z:=a[i];
end;
writeln(z);
end.