Нужна скорая помощь по решению задач на паскале

Лучик
Сообщения: 1
Зарегистрирован: 04 июн 2005, 13:03

1. Пусть даны три слова. Необходимо определить буквы, которые встречаются (для нахождения множества символов, образующих слово, используйте процедуру):
а) во всех словах;
б) только в 1-м и 2-м словах;
в)только в 1-м и 3-м словах;
г) только во 2-м и 3-м словах;
д) только в 1-м слове;
е) только во 2-м слове;
ж) только в 3-м слове.

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

3. Пусть дана прямоугольная матрица А(n x m), элементами которой являются вещественные числа. Определите для каждой строки, все ли её элементы являются симметричными. Составьте функцию, проверяющую симметричность числа.

4. Пусть дана прямоугольная матрица А(n x m), элементами которой являются целые числа.Определите для каждого элемента позиции элементов матрицы с такой же суммой цифр. :cry: [/b]
prog
Сообщения: 19
Зарегистрирован: 14 июн 2005, 01:37
Контактная информация:

Могу помочь решить эти задачи в кратчайшие сроки.
Свяжись со мной по ICQ 220655573
или отправь сообщение на ящик kolesnik_kka@mail.ru
orlando
Сообщения: 1
Зарегистрирован: 07 июл 2007, 21:58

окажите помащь в написании проги на паскале..типа с графами
{является ли введенный обод графом}
плиз..
Аватара пользователя
Новенький
Сообщения: 73
Зарегистрирован: 01 июн 2007, 17:35
Откуда: Чусовой (Пермский край)
Контактная информация:

Лучик, вот 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.
Программирование - хорошая штука
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Оптимизируем, господа!
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;
А дальше в цикле пройтись по матрице и вывести элементы с той же суммой для каждого элемента
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
Новенький
Сообщения: 73
Зарегистрирован: 01 июн 2007, 17:35
Откуда: Чусовой (Пермский край)
Контактная информация:

Хыиуду, а объясни пожалуйста вот это then continue, я просто недавно начал изучать программироввание, а еще inc(s,a mod 10);
Программирование - хорошая штука
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

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
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
Новенький
Сообщения: 73
Зарегистрирован: 01 июн 2007, 17:35
Откуда: Чусовой (Пермский край)
Контактная информация:

а, понятно
Программирование - хорошая штука
джонсмит
Сообщения: 2
Зарегистрирован: 10 дек 2009, 21:45

помогите решить: в введенном натуральном числе переставить 1-ую и последнюю цифру в записи. очень надо :confused:
Аватара пользователя
Sheka
Сообщения: 246
Зарегистрирован: 17 май 2009, 15:48
Контактная информация:

255507394 за бутылку пива!
Мои мысли настолько гениальны, что санитары уже приехали!
Ася 255507394.
Ответить