помогите решить задачи

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

chuma
Сообщения: 6
Зарегистрирован: 05 июн 2007, 20:55

1. Даны 3 слова, в каждом из которых от 1 до 6 строчных букв и за каждым из слов следует пробел. Напечатать этим слова в алфавитном порядке.




2. type поле = record Bept (a,b,c,d,e,f,g,h);
гориз:1..8
end.
Описать логическую функцию ход ферзя (n1,n2) проверяющую может ли ферзь за один ход перейти с поля n1 шахматной доски на поле n2.



3. Работа с множественными файловыми типами
Const n=10;
type номер=1..n;
матрица = array [номер, номер] of real
hom = setoff номер
Описать функцию sum (А, S1,S2) вычисляющую сумму тех элементов матрица А, номера строки и столбцов которых принадлежат соответственно непустым множеством S1 и S2.
Аватара пользователя
Новенький
Сообщения: 73
Зарегистрирован: 01 июн 2007, 17:35
Откуда: Чусовой (Пермский край)
Контактная информация:

1. Даны 3 слова, в каждом из которых от 1 до 6 строчных букв и за каждым из слов следует пробел. Напечатать этим слова в алфавитном порядке.

Код: Выделить всё

uses crt;
type mas=array[1..3]of string;
var stroka:string;
    massiv:mas;
    i,j,n,k1,k2:integer;
procedure sort(var massiv:mas);
  var i,j:integer;
      str:string;
  begin
    for i:=1 to 3 do
      for j:=1 to 3 do
        if massiv[i]<massiv[j]
        then begin
          str:=massiv[i];
          massiv[i]:=massiv[j];
          massiv[j]:=str;
        end;
    for i:=1 to 3 do
      write(massiv[i]:7);
  end;

begin
  clrscr;
  writeln('Введите слова: ');
  readln(stroka);
  k1:=1;
  n:=1;
  for j:=1 to length(stroka) do
    begin
      if stroka[j]=' '
      then begin
        k2:=j;
        massiv[n]:=copy(stroka,k1,k2-k1);
        k1:=j+1;
        n:=n+1;
      end
      else if j=length(stroka)
           then begin
             k2:=j;
             massiv[n]:=copy(stroka,k1,k2-k1+1);
           end;
    end;
  writeln('Алфавитный порядок: ');
  sort(massiv);
  readln;
end.
Программирование - хорошая штука
chuma
Сообщения: 6
Зарегистрирован: 05 июн 2007, 20:55

А ты можешь решить это в Turbo C+. Мне в паскале не надо.
chuma
Сообщения: 6
Зарегистрирован: 05 июн 2007, 20:55

А ты можешь решить это в Turbo C+. Мне в паскале не надо. А ты остальные можешь решить. Я в долгу не останусь, реши пожалуйста, у меня скоро сессия начнется, а зачет до сих пор не получил.
yuka
Сообщения: 13
Зарегистрирован: 07 янв 2007, 16:37

за 100р могу решить тебе хоть сёдня.
если нужно - пиши на мыло yukamail@bk.ru
стучи в асю 285326904
мой сайт acmsolver.narod.ru.
Аватара пользователя
Новенький
Сообщения: 73
Зарегистрирован: 01 июн 2007, 17:35
Откуда: Чусовой (Пермский край)
Контактная информация:

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

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

3. Работа с множественными файловыми типами
Const n=10;
type номер=1..n;
матрица = array [номер, номер] of real
hom = setoff номер
Описать функцию sum (А, S1,S2) вычисляющую сумму тех элементов матрица А, номера строки и столбцов которых принадлежат соответственно непустым множеством S1 и S2.

Код: Выделить всё

{Описать функцию sum (А, S1,S2) вычисляющую сумму тех элементов матрица А, 
номера строки и столбцов которых принадлежат соответственно непустым множеством
S1 и S2.}
uses crt;
const n=10;
type nom=1..n;
     mas=array[1..n,1..n]of integer;
var matric:mas;
    s1,s2:set of byte;
    i,j:integer;
function sum(var m:mas):integer;
  var i,j:integer;
      summ:integer;
  begin
    summ:=0;
    for i:=1 to n do
      for j:=1 to n do
        if ((i in s1)and(j in s1))or((i in s2)and(j in s2))
        then summ:=m[i,j]+summ;
    sum:=summ;
  end;

begin
  clrscr;
  randomize;
  s1:=[1,2,3,5,8];
  s2:=[2,4,5,7,8];
  for i:=1 to n do
    begin
      for j:=1 to n do
        begin
          matric[i,j]:=random(101)-50;
          write(matric[i,j]:5);
        end;
      writeln;
      end;
  writeln('Сумма элементов: ',sum(matric):3);
  readln;
end.
а вторую я не понял. А перевести на язык Turbo C+ думаю не сложно.
Программирование - хорошая штука
ichups
Сообщения: 14
Зарегистрирован: 06 июн 2007, 21:57

Вот ответ на 2 вопрос пор ферзя вроде понятнее сложно придумать :

enum Tvec{a=1, b=2,c=4, d=5, e=6, f=7,g=8};// перечислимый тип для гор и вер
struсе Tdk{Tvec d1; Tvec d2;}; // структура шахматной доски
bool Tf(Tdk beg, Tdk en){
if((beg.d1==en.d1)||(beg.d2==en.d2)){return true;};// проверка на ходы ладьи
if((beg.d1+beg.d2)==(en.d1+en.d2)){return true;};// проверка на ходы по 1 диагонали
if(beg.d1-beg.d2)==(en.d1-en.d2)){return true;};// проверка на ходы по 2 диаг
return false;
};
Это стандартный С++
chuma
Сообщения: 6
Зарегистрирован: 05 июн 2007, 20:55

Это же не С+
В С+ начинаеться так:
#include<stdio.h>
main()
Ответить