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

Тема в разделе "Pascal and Delphi", создана пользователем mcbeat, 13 янв 2011.

  1. mcbeat

    mcbeat Гость

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

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



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



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

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    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);
     
  3. mss

    mss Гость

    icq 169527143
     
  4. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7

    так лучше:
    Код (Delphi):
    if (s[i] in ['а','е','о','у','ы','э','я','и','ю','ё','А','Е','О','У','Ы','Э','Я','И','Ю','Ё']) then inc(res);
     
  5. mcbeat

    mcbeat Гость



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

    Код (Text):
    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.
     
  6. mcbeat

    mcbeat Гость

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

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

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    №1(два варианта, незнаю какой правильный)
    (первый, переводит символ в число и сумирует так 2+3=5)
    Код (Delphi):
    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
    Код (Delphi):
    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
    Код (Delphi):
    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
    Код (Delphi):
    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.
     
Загрузка...

Поделиться этой страницей