Program b; var bal: integer; stip: real; begin write('введите средний учащегося: '); write('введите стандартную стипендию: '); readln(bal,stip); if bal> =4 then stip: =stip+(stip/2) else stip: =stip; writeln('стипендия учащегося: ',stip); readln; end.как я понял по условию, нужно посчитать стипендию у различных
orinvarostov
18.05.2022
Var s,w: string; i,j,n,p,k,gmax: integer; fbreak: boolean; { флажок для прерывания циклов } begin writeln('введите текст, разделяя слова пробелами'); readln(s); s: =lowercase(s); n: =length(s); p: =1; fbreak: =false; gmax: =0; while (not fbreak) do { перебор всех символов в строке } begin {ищем первый непробельный символ - начало слова } fbreak: =false; while ((p< =n) and (not fbreak)) do if (p=n) or (s[p]< > ' ') then fbreak: =true else inc(p); { ищем первый пробельный символ - конец слова } if p< n then begin i: =p; inc(p); fbreak: =false; while (p< =n) and (not fbreak) do begin if (p=n) or (s[p]=' ') then fbreak: =true else inc(p) end; { теперь слово находится между позициями i и p } k: =0; for j: =i to p do if s[j] in ['а','е','ё','и','о','у','ы','э','ю','я'] then inc(k); if gmax< k then begin gmax: =k; w: =copy(s,i,p-i) end; i: =p; p: =p+1 end else p: =p+1; fbreak: =(p> n) end; if gmax> 0 then writeln('в слове "',w,'" максимум гласных, равный ',gmax) else writeln('во введенной строке гласных букв не найдено') end. тестовое решение: введите текст, разделяя слова пробелами в слове три буквы е подряд! в слове "" максимум гласных, равный 5
gaina6678
18.05.2022
Procedure getword(s: string; var p: integer; var w: string; delim: string: =' '); { получает в w слово из строки s, которое начинается не ранее позиции p. возвращает новое значение p, указывающее на первый разделитель delim, который следует за найденным словом или 0, если такой разделитель не найден. по умолчанию слова разделяются не менее чем одним пробелом } var i,n: integer; fbreak: boolean; { флажок для прерывания циклов } begin n: =length(s); fbreak: =false; {ищем первый символ, отличный от разделителя - начало слова } while ((p< =n) and (not fbreak)) do if (p=n) or (s[p]< > delim) then fbreak: =true else inc(p); { ищем очередной разделитель - конец слова } if p< n then begin i: =p; inc(p); fbreak: =false; while (p< =n) and (not fbreak) do begin if (p=n) or (s[p]=' ') then fbreak: =true else inc(p) end; { теперь слово находится между позициями i и p } w: =copy(s,i,p-i) end; if p> =n then p: =0 end; function countg(w: string): integer; { возвращает количество гласных в слове w} var i,k: integer; begin k: =0; for i: =1 to length(w) do if w[i] in ['а','е','ё','и','о','у','ы','э','ю','я'] then inc(k); countg: =k end; var s,w,wmax: string; p,k,gmax: integer; begin writeln('введите текст, разделяя слова пробелами'); readln(s); s: =lowercase(s); p: =1; gmax: =0; while p> 0 do begin getword(s,p,w); k: =countg(w); ; if gmax< k then begin gmax: =k; wmax: =w end end; if gmax> 0 then writeln('в слове "',wmax,'" максимум гласных, равный ',gmax) else writeln('во введенной строке гласных букв не найдено') end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Если средний учащегося больше или равен 4, то ему выплачивается стипендия с 50% надбавкой