|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
08.12.2009, 18:17 | #1 (permalink) |
Member
Регистрация: 05.10.2009
Сообщений: 21
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Обработка строк и символов
1.Дана строка, слова в которой разделены хотя бы одним пробелом. Найти первое и последние вхождение (номер позиции в строке символа " * " Если такого символа нет вообще, выдать сообщение) 2.Приняв способ изображения рационального числа в виде записи с двумя полями. числ, знам: integer; Написать программу, позволяющая во первых, определить есть ли среди 50 рациональных чисел равные и во-вторых, вычислить наибольшее из данных рациональных чисел (числа не обязательно имеют несократимую форму). |
08.12.2009, 18:17 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Пока вам отвечают в тему, советую ознакомиться с аналогичными топиками Автоматическа нумерация строк Обработка строк,массивов,записей |
08.12.2009, 22:11 | #2 (permalink) | ||
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
VAR S:STRING; i,Imin,Imax:INTEGER; b:BOOLEAN; BEGIN WriteLn('Enter the string:'); ReadLn(S); i:=0; Imin:=0; Imax:=0; b:=FALSE; REPEAT INC(i); IF (S[i]='*') AND (b=FALSE) THEN BEGIN Imin:=i; b:=TRUE; END; IF (S[i]='*') AND (i>Imin) AND b THEN Imax:=i; UNTIL i=Length(S); IF (Imin>0) AND (Imax>0) THEN WriteLn('The first "*" position is ',Imin,'; the last "*" position is ',Imax) ELSE IF (Imin>0) AND (Imax=0) THEN WriteLn('The only "*" position is ',Imin) ELSE WriteLn('There is no "*" in the string'); ReadLn; END. Цитата:
Код:
TYPE Rat=RECORD Nom:BYTE; Denom:BYTE; END; VAR Num:ARRAY[1..50] of RAT; i,j,Imax:INTEGER; MAX:REAL; BEGIN Randomize; FOR i:=1 TO 50 DO WITH Num[i] DO BEGIN Nom:=Random(30); Denom:=Random(29)+1; END; MAX:=-1.0; FOR i:=1 TO 50 DO WITH Num[i] DO IF Nom/Denom>MAX THEN BEGIN MAX:=Nom/Denom; Imax:=i; END; FOR i:=0 TO 4 DO BEGIN FOR j:=1 TO 10 DO Write(Num[10*i+j].Nom:2,'/',Num[10*i+j].Denom:2,' '); Writeln; END; WriteLn('The largest value is ',Num[Imax].Nom:2,'/',Num[Imax].Denom:2); FOR i:=1 TO 50 DO FOR j:=i+1 TO 50 DO IF ROUND(Num[i].Nom/Num[i].Denom*1000000)= ROUND(Num[j].Nom/Num[j].Denom*1000000) THEN WriteLn('Number ',i,' is equal to number ',j); ReadLn; END. |
||
09.12.2009, 08:45 | #3 (permalink) |
Member
Регистрация: 05.10.2009
Сообщений: 21
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо большое..
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|