• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Строки в Паскале

  • Автор темы mcbeat
  • Дата начала
M

mcbeat

Задали 3 задачки:

1. Дана строка символов, которая изображает целое позитивное число. Если она представляет собой запись целого числа со значением последней цифры равной 0, то вывести «Данное число делиться на 10 нацело», в противном случае «Данное число не делиться на 10 нацело».



2. Дана строка, которая содержит хотя бы один символ пробела. Вывести подстроку, расположенную между первым и вторым пробелом исходной строки. Если строка содержит только один пробел, то вывести пустую строку.



3. Дана строка-предложение на русском языке. Подсчитать количество гласных букв, которые содержатся в строке.
 
N

nayke

1. Дана строка символов, которая изображает целое позитивное число. Если она представляет собой запись целого числа со значением последней цифры равной 0, то вывести «Данное число делиться на 10 нацело», в противном случае «Данное число не делиться на 10 нацело».
if s[Length(s)]='0' then writeln('Данное число делиться на 10 нацело')
else writeln('Данное число не делиться на 10 нацело');

2. Дана строка, которая содержит хотя бы один символ пробела. Вывести подстроку, расположенную между первым и вторым пробелом исходной строки. Если строка содержит только один пробел, то вывести пустую строку.

Delete(s,1,pos(' ',s));
if pos(' ',s)<>0 then res:=Copy(s,1,pos(' ',s));
writeln(res);

3. Дана строка-предложение на русском языке. Подсчитать количество гласных букв, которые содержатся в строке.

res:=0;
for i:=1 to length(s) do
if (s='а')or(s='е')or(s='о')or(s='у')or(s='ы')or(s='э')or(s='я')or(s='и')or(s='ю') then inc(res);
 
M

mcbeat

if s[Length(s)]='0' then writeln('Данное число делиться на 10 нацело')
else writeln('Данное число не делиться на 10 нацело');



Delete(s,1,pos(' ',s));
if pos(' ',s)<>0 then res:=Copy(s,1,pos(' ',s));
writeln(res);



res:=0;
for i:=1 to length(s) do
if (s='а')or(s='е')or(s='о')or(s='у')or(s='ы')or(s='э')or(s='я')or(s='и')or(s='ю') then inc(res);


Я написал первую задачку так, но она работает не правильно:

Код:
program n5_1;
var s:string[6];
i:integer;
begin
s:='пример';
for i:=1 to 6 do
write(s[i], ' ');
begin
writeln;
for i:=1 to 6 do
write(ord(s[i]), '');
if s[Length(s)]='0' then writeln('Данное число делиться на 10 нацело')
else writeln('Данное число не делиться на 10 нацело');
end;
end.
 
M

mcbeat

Блин, ни фига не получается, уже час сижу, и ни в какую(((((((

Помогите ПЛЗ, а то завтра экзамен, а мне только эти задачи остались!
 
D

Dock1100

№1(два варианта, незнаю какой правильный)
(первый, переводит символ в число и сумирует так 2+3=5)
Код:
var s:string;
ch:longint;
i:integer;
begin
writeln('vvedite chislo');
readln(s);
ch:=0;
for i:=1 to length(s) do
ch:=ch+ord(s[i]);
writeln('chislo = ',ch);
if ch mod 10 =0 then writeln('delitsa na 10')
else writeln('ne delitsa na 10');
readln;
end.
(второй, переводит символ в число и сумирует так 2+3=23
Код:
var s:string;
ch,n,k:longint;
i,j:integer;
begin
writeln('vvedite chislo');
readln(s);
ch:=0;
for i:=1 to length(s) do
begin
k:=3;
if ord(s[i])<=99 then k:=2;
if ord(s[i])<=9 then k:=1;
n:=1;
for j:=1 to k do n:=n*10;

writeln(''' ',s[i],'''=',ord(s[i]));

ch:=ch*n+ord(s[i]);
end;

writeln('chislo = ',ch);
if ch mod 10 =0 then writeln('delitsa na 10')
else writeln('ne delitsa na 10');
readln;
end.

№2
Код:
var s,s2:string;
i,l,r:integer;
begin
writeln('vvedite stroku');
readln(s);
l:=0;
r:=0;
l:=pos(' ',s);
delete(s,1,l);
r:=pos(' ',s);
s2:=copy(s,1,r);
if r=0 then writeln('_______________')
else
writeln(s2);
readln;
end.
№3
Код:
var s:string;
i,k:integer;

begin
writeln('vvedite stroku');
readln(s);
k:=0;
for i:=1 to length(s) do
if (s[i] in ['a','A','e','E','i','I','o','O','u','U']) then k:=k+1;//тут замени буквы на руские
writeln('k=',k);
readln;
end.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!