IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Операции с числами по условиям и работа со строкой, Было: Достаточно простая задачка...
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  1  +


ТоварисЧи, огромная просьба о помощи. Нужно написать программу, которая решает две задачи: 1-даны пары целых чисел. Если числа не равны, то следует каждое из них заменить одним и тем же числом, равным большему из исходных, а если равны, то заменить числа на единицы. 2- дана строка. Подсчитать, сколько в ней букв r,k,t.
Буду очень сильно благодарен за помощь.

М
Название изменено.
Правила, п.4




Сообщение отредактировано: Lapp -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Было бы что сложное, мы бы головы поломали. А так с нуля писать простую программу - неинтересно. Покажи хоть свой вариант кода, посмотрим, что не так.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  1  +


1-я задача, ток я не зная как быть с парами чесел, сделал для 2-х
program lol;
var m,n: integer;
x:=10000000;
y:=1;
Begin
Write ('m,n=');
Read(m,n);
if m<>n then begin m:=x; n:=x; end
else begin m:=y; n:=y;end;
Write('m=',m,' ','n=',n);
end.

2-я
program string_11;
var s:string;
a,b,c,i:integer;
begin write('введите строку');
readln(s);
a:=0;b:=0;c:=0;
for i:=1 to length(s) do
begin if s[i]='r' then a:=a+1;
if s[i]='k' then b:=b+1;
if s[i]='t' then c:=c+1
end;
writeln('количество букв r=',a);
writeln('количество букв k=',b);
writeln('количество букв t=',c);
readln;
end.

Ну а посложнее- в условии сказано, что в основной программе должен быть оператор выбора задач, оформленных в виде подпрограмм.
Очень прошу помочь, с паскалем у меня чего-то туговато...

Сообщение отредактировано: MaxiRush -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


> if m<>n then begin m:=x; n:=x; end

Надо по условию заменить на большее из исходных. Почему ты меняешь на 10000000?
Надо так:


if m <> n then begin
if m>n then
n:=m
else
m := n;
end;



По второй всё вроде верно, только названия переменных дурацкие. Вместо a,b,c лучше напиши count_r, count_k, count_t.

Добавлено через 4 мин.
Чтобы оформить задачу в подпрограмму, надо выделить кусок от var до end и написать перед ним procedure TwoNumbers; потом скопировать к нему такой же кусок из второй программы, в конец дописать begin end с выбором задачи. Типа такого:


program hz;

procedure TwoNumbers;
var
...
begin
...
end;

procedure Find_rkt;
var
...
begin
...
end;

var
task: integer;
begin
repeat
Write('enter task number: ');
ReadLn(task);
case task of
1: TwoNumbers();
2: Find_rkt();
end;
until task = 0;
end.



--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  1  +


Тем, у кого будет подобное задание... Вот что получилось:
program hz;
uses crt;
procedure TwoNumbers;
var m,n: integer;
y:=1;
Begin
Write ('Введите числа m,n=');
Read(m,n);
if m=n then begin m:=y; n:=y; end
else begin
if m>n then
n:=m
else
m := n;
end;
Write('m=',m,' ','n=',n);
end;

procedure Find_rkt;
var s:string;
a,b,c,i:integer;
begin write('введите строку');
readln(s);
a:=0;b:=0;c:=0;
for i:=1 to length(s) do
begin if s[i]='r' then a:=a+1;
if s[i]='k' then b:=b+1;
if s[i]='t' then c:=c+1
end;
writeln('количество букв r=',a);
writeln('количество букв k=',b);
writeln('количество букв t=',c);
readln;
end;

var
task: integer;
begin
repeat
writeln(' выберите программу : 1.первая, 2.вторая');
ReadLn(task);
case task of
1: TwoNumbers();
2: Find_rkt();
end;
until task = 0;
end.

Очень благодарен за помощь, если надо кидану денюшку на счет или номер, пиши если что в личку)

Сообщение отредактировано: MaxiRush -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Не, раз ты сам почти всё сделал, то ничего не надо.
А то тут некоторые приходят "ничего не знаю, сделайте полностью за меня".


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 13.05.2024 2:40
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name