Var
a: array [4..9] of longint;
q:longint;
begin
for q:=4 to 9 do
begin
a[q]:=random(10)+1;
write(a[q],' ');
end;
writeln();
for q:=4 to 9 do
begin
if a[q]<5 then a[q]:=a[q]-1;
write(a[q],' ');
end;
end.<span>
</span>
Ошибок тут больше одной.
Во-первых, в операторе вывода стоит вызов функции ups, которой в качестве второго аргумента передается неизвестная переменная a. Если имелся в виду символ "а", его надо было заключить в одинарные кавычки.
Во-вторых, в теле функции ups определяется значение n в цикле. Даже, если искомый символ найден и n получит значение позиции этого символа в слове, то если слово просмотрено не полностью, следующий же проход по циклу снова сбросит n в ноль. Следовательно, эта функция будет выдавать верный результат только если искомая буква - последняя в слове.
var
slovo: string;
i: integer;
function ups(var s: string; ch: char): integer;
var
i, n: integer;
begin
i:=1;
n:=0;
while (i<=length(s)) and (n=0) do
begin
if s[i] = ch then n := i;
i:=i+1
end;
ups:=n
end;
begin
writeln('vvedite slovo');
readln(slovo); writeln('N = ', ups(slovo, 'a'));
end.
Замечание: в языке Паскаль имеется функция Pos, производящая поиск подстроки в строке...
После этих строчек:
<em>for i:=0 to 10 do </em>
<em>a[i]:=i-1; </em>
Элементы массива будут от иметь значения -1 до 9.
А после этих:
<em>for i:=1 to 10 do </em>
<span><em>a[i-1]:=a[i]; </em></span>
<span><em>a[10]:=10;
</em></span>
Они будут равны от 1 до 10.
Можно так:
Program VremjaGoda;
Var i:integer;
Begin
Writeln ('введите номер месяца');
Begin
For i:=1 to 12 do
Begin
If i=1 or i=2 or i=12
Then writeln ('зима');
Else
If i=3 or i=4 or i=5
Then writeln ('Весна');
Else
If i=6 or i=7 or i=8
Then writeln ('Лето');
Else
If i=9 or i=10 or i=11
Then writeln ('Осень');
End;
End;
End.
Можно использовать Case.