Ошибок тут больше одной.
Во-первых, в операторе вывода стоит вызов функции 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, производящая поиск подстроки в строке...
//Pascal ABC.NET v3.1 сборка 1219
Const n=7;
Var
ar:array[1..n] of integer;
i,k:integer;
begin
for i:=1 to n do
begin
readln(ar[i]);
if ar[i] mod n<>0 then k:=k+1;
end;
writeln('Res:',k);
end.
Пример ввода:
1
2
3
4
5
6
7
Пример вывода:
Res: 6
1) ты не можешь копировать/распространять что-либо без согласия автора
2)
Использование его музыки/фильма и т.д в личных целях
3)
Поагиат-копирование материла (сделал он отправил я)
Const
n=5;
Var
ar:array[1..n] of integer;
ar2:array[1..n] of integer;
i,k:integer;
function prost(a:integer):boolean;
var i:integer;
b:boolean;
begin
b:=true;
for i:=2 to a div 2 do
if a mod i=0 then
begin;
b:=false;
break;
end;
if a=1 then b:=false;
prost:=b;
end;
begin;
randomize;
k:=0;
for i:=1 to n do
begin;
ar[i]:=random(101);
write(ar[i]:4);
end;
writeln;
for i:=1 to n do
if prost(ar[i]) then
begin;
inc(k);
ar2[k]:=ar[i];
write(ar2[k]:4);
end;
end.<span>
</span>