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

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

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

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





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

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


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

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




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


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

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

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


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


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
MaxiRush
сообщение 13.07.2011 14:30
Сообщение #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 - 13.07.2011 14:32
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 13.07.2011 15:18
Сообщение #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 
 К началу страницы 
+ Ответить 
MaxiRush
сообщение 13.07.2011 18:53
Сообщение #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 - 13.07.2011 18:56
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 14.07.2011 10:29
Сообщение #6


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

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

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


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


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

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

 



- Текстовая версия 21.07.2025 10:32
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"