Страница 1 из 2
Нужна скорая помощь по решению задач на паскале
Добавлено: 04 июн 2005, 13:27
Лучик
1. Пусть даны три слова. Необходимо определить буквы, которые встречаются (для нахождения множества символов, образующих слово, используйте процедуру):
а) во всех словах;
б) только в 1-м и 2-м словах;
в)только в 1-м и 3-м словах;
г) только во 2-м и 3-м словах;
д) только в 1-м слове;
е) только во 2-м слове;
ж) только в 3-м слове.
2.Пусть даны два предложения, которые оканчиваются точкой и содержат одинаковое количество слов. Определите для первых слов каждого предложения множество одинаковых букв, а для последних - те буквы, которые встречаются только в одном из них. Для определения буквенного состава слова используйте процедуру.
3. Пусть дана прямоугольная матрица А(n x m), элементами которой являются вещественные числа. Определите для каждой строки, все ли её элементы являются симметричными. Составьте функцию, проверяющую симметричность числа.
4. Пусть дана прямоугольная матрица А(n x m), элементами которой являются целые числа.Определите для каждого элемента позиции элементов матрицы с такой же суммой цифр.

[/b]
Добавлено: 14 июн 2005, 01:53
prog
Могу помочь решить эти задачи в кратчайшие сроки.
Свяжись со мной по ICQ 220655573
или отправь сообщение на ящик
kolesnik_kka@mail.ru
Re: Нужна скорая помощь по решению задач на паскале
Добавлено: 07 июл 2007, 22:07
orlando
окажите помащь в написании проги на паскале..типа с графами
{является ли введенный обод графом}
плиз..
Re: Нужна скорая помощь по решению задач на паскале
Добавлено: 08 июл 2007, 09:56
Новенький
Лучик, вот 4:
Код: Выделить всё
(*Пусть дана прямоугольная матрица А(n x m), элементами которой являются целые
числа.Определите для каждого элемента позиции элементов матрицы с такой же
суммой цифр.*)
uses crt;
type matr=array[1..10,1..10]of integer;
procedure summa(a:integer; var s:integer); {сумма цифр элемента}
begin
s:=0; {обнуляем сумму}
if a<10 {если в числе одна цифра}
then s:=a {то присваиваем эту цифру сумме}
else while a>9 do {иначе пока число болше 9}
begin
s:=a mod 10+s; {суммируем последнюю цифру и основную сумму}
a:=a div 10; {отбрасываем последнюю цифру}
if a<10 then s:=s+a; {если число стало меньше 9, то фиксируем это в сумме}
end;
end;
procedure poz(ma:matr; n,m:integer); {позиция элемента}
var i,j,i_prom,j_prom,sum,sum_prom,chislo,nom,kol:integer;
begin
nom:=1; {nom - номер элемента по порядку: 1}
for i:=1 to m do
for j:=1 to n do
begin
writeln(nom,' элемент (',ma[i,j],'): ');
chislo:=ma[i,j]; {присваиваем переменной значение текущего элемента матрицы}
summa(chislo,sum); {находим сумму цифр элемента}
for i_prom:=1 to m do
for j_prom:=1 to n do
begin
chislo:=ma[i_prom,j_prom];
summa(chislo,sum_prom);
if (sum=sum_prom)and((i<>i_prom)and(j<>j_prom)) {суммы= и элемент не один и тот же}
then begin
write('(',i_prom,' : ',j_prom,') '); {выводим координаты}
kol:=kol+1; {подсчитываем кол-во кординат}
end
else write;
end;
if kol=0 then write('нет'); {нет элементов с такой же суммой цифр}
kol:=0; {обнуляем кол-во координат}
writeln;
nom:=nom+1; {меняем номер элемента}
end;
end;
var m,n,i,j:integer;
a:matr;
begin
clrscr; {очистка экрана}
randomize; {включение датчика случайных чисел}
write('Размерность (n x m): ');
readln(n,m); {размерность матрицы}
{заполнение матрицы случайными числами и вывод на экран}
for i:=1 to m do {счетчик столбцов}
begin
for j:=1 to n do {счетчик строк}
begin
a[i,j]:=random(21); {заполнение}
write(a[i,j]:3); {вывод}
end;
writeln;
end;
poz(a,n,m);
readln;
end.
Re: Нужна скорая помощь по решению задач на паскале
Добавлено: 09 июл 2007, 10:54
Хыиуду
Оптимизируем, господа!
summa лучше сделать не процедурой, а функцией, так оно все логичней получается
Код: Выделить всё
function summa(a:integer):integer;
var s:integer;
begin
s:=0;
while a>0 do
begin
inc(s,a mod 10);
a:=a div 10;
end;
summa:=s;
end;
Теперь процедура, которая отыскивает для
заданного элемента элементы с такой же суммой
Код: Выделить всё
procedure find_even_sum(ma:matr;x,y:integer);
var i,j,sum:integer
begin
sum:=summa(ma[x,y]);
for i:=1 to 10 do
for j:=1 to 10 do
begin
if (i=x) and (j=y) then continue;
if summa(ma[i,j])=sum then writeln(i,':',j);
end;
end;
А дальше в цикле пройтись по матрице и вывести элементы с той же суммой для каждого элемента
Re: Нужна скорая помощь по решению задач на паскале
Добавлено: 10 июл 2007, 08:34
Новенький
Хыиуду, а объясни пожалуйста вот это then continue, я просто недавно начал изучать программироввание, а еще inc(s,a mod 10);
Re: Нужна скорая помощь по решению задач на паскале
Добавлено: 10 июл 2007, 12:51
Хыиуду
continue - переход к следующему шагу цикла, полезно, если тело цикла в каких-то условиях не должно выполняться. Например, найти сумму всех нечетных чисел от 1 до 99
for i:=1 to 99 do
if i mod 2=0 then continue {если число четное - переходим к следующему шагу цикла}
else inc(sum,i);
inc(a,b) равносильно a:=a+b. inc(a) равносильно а:=a+1
Re: Нужна скорая помощь по решению задач на паскале
Добавлено: 10 июл 2007, 14:32
Новенький
а, понятно
Re: Нужна скорая помощь по решению задач на паскале
Добавлено: 25 дек 2009, 17:28
джонсмит
помогите решить: в введенном натуральном числе переставить 1-ую и последнюю цифру в записи. очень надо

Re: Нужна скорая помощь по решению задач на паскале
Добавлено: 26 дек 2009, 21:04
Sheka
255507394 за бутылку пива!