Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2007, 21:30   #1
Bagsi
Пользователь
 
Регистрация: 24.10.2007
Сообщений: 21
Сообщение Решите пожалуйста задачу на Паскале

1.
const n=50;
var x:array[1..n] of integer; k:integer;
Подсчитать k-число различных элементов в массиве x.
Bagsi вне форума Ответить с цитированием
Старый 30.10.2007, 07:59   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Код:
const
  n = 50;
var
  x,x0: array[1..n] of integer;
  k,i,j: integer;
  ind: boolean;
begin
  randomize;
  for i:=1 to n do
    x[i]:=random(50);
  k:=1;
  x0[1]:=x[1];
  for i:=1 to n do
    begin
      ind:=true;
      for j:=1 to k do
        if x[i] = x0[j] then
          begin
            ind:=not ind;
            break;
          end;
      if ind then
        begin
          k:=k+1;
          x0[k]:=x[i];
        end;
    end;
  writeln(k);
end.
Несовпадающие элементы копируются в массив x0, k - размер этого массива
_Dmitry вне форума Ответить с цитированием
Старый 30.10.2007, 14:06   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Смотри следующий пост.

Последний раз редактировалось puporev; 30.10.2007 в 14:25. Причина: Не могу удалить
puporev вне форума Ответить с цитированием
Старый 30.10.2007, 14:08   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Обычно в таких задачах не разрешается использовать дополнительные массивы. Поэтому предлагаю другое решение. Смотри вложение.
Будут вопросы, пиши в этом же раэделе.
Вложения
Тип файла: rar ZAD_1.rar (497 байт, 15 просмотров)
puporev вне форума Ответить с цитированием
Старый 30.10.2007, 14:44   #5
Cantana
форвард
Форумчанин
 
Аватар для Cantana
 
Регистрация: 03.08.2007
Сообщений: 130
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
Обычно в таких задачах не разрешается использовать дополнительные массивы. Поэтому предлагаю другое решение. Смотри вложение.
Будут вопросы, пиши в этом же раэделе.

а нельзя
Код:
в выде кода
dela ne v dengax a v yego kolichestve
Cantana вне форума Ответить с цитированием
Старый 30.10.2007, 18:52   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вот этот код. Код рабочий, проверял. Если вдруг не работает, значит где-то опечатка.

Код:
program name;
uses crt;
const n=50;
var
   a:array[1..n]of integer;
begin
  clrscr;
  randomize;
СОЗДАЕМ МАССИВ
  writeln('Заданный массив');
  for i=1 to n do
    begin
       a[i]:=random(20)-10;
    end;
  for i:=1 to n do           
    write(a[i],' ');
    readln;
  writeln;
СОРТИРУЕМ МАССИВ ПО ВОЗРАСТАНИЮ
  writeln(('Отсортированный массив');
  for i:=1 to n-1 do
     begin
       for j:=1 to n-1 do
          if a[j]>a[j+1] then
             begin
               x:=a[j]; a[j]:=a[j+1]; a[j+1]:=x;
             end;
     end;   
   for i:=1 to n do
    writeln(a[i]); 
    readln;
   writeln;
СЧИТАЕМ КОЛИЧЕСТВО РАЗНЫХ ЭЛЕМЕНТОВ
   for i:=1 to n do
      begin
         k:=0;
         for j:=1 to n do
           if a[j]<>a[j+1] then
              begin
                k:=k+1;
              end;
      end;
    writeln('Количество разных элементов = ',k); 
    readln;
end;
puporev вне форума Ответить с цитированием
Старый 30.10.2007, 20:46   #7
Bagsi
Пользователь
 
Регистрация: 24.10.2007
Сообщений: 21
Радость

Спасибо большое
Bagsi вне форума Ответить с цитированием
Старый 19.02.2008, 21:57   #8
Alfons
 
Регистрация: 19.02.2008
Сообщений: 8
По умолчанию

Напишите пожалуйста поподробнее где и как
1_)СОЗДАЕМ МАССИВ
2_)СОРТИРУЕМ МАССИВ ПО ВОЗРАСТАНИЮ
3_)СЧИТАЕМ КОЛИЧЕСТВО РАЗНЫХ ЭЛЕМЕНТОВ
Что там надо писать и заполнять?
Объясните как это сделать!!!

Последний раз редактировалось Alfons; 20.02.2008 в 00:26.
Alfons вне форума Ответить с цитированием
Старый 19.02.2008, 23:32   #9
miron
 
Регистрация: 19.02.2008
Сообщений: 9
По умолчанию

Решите пожалуйста задачу на Паскале
1.Составить программу циклической перестановки букв в словах текста так, что i-я буква слова становится i+1-ой, а последняя - первой.
2.В каких двузначных числах удвоенная сумма цифр равна их произведению?
miron вне форума Ответить с цитированием
Старый 19.02.2008, 23:57   #10
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

Ух вспомним былое...)))
1)
Код:
Var
  S:string;
  m,n:char;
  i:integer;
begin
  s:='blasblad';
  m:=s[length(s)]
  for i:=1 to Length(s)-1 do
  begin
     n:=s[i];
     s[i]:=m;
     m:=n;
  end;
end.
2)
Код:
var i,i1,i2:Byte;//можно и Integer
begin
  For i:=10 to 99 do
  begin
     i1:=i div 10;
     i2:=i mod 10;
     if (i1+i2)*2 =i1*i2 then writeln(i);
  end; 
end.
Принцип таков но не проверял(
Помог? Ну так нажми на весы!
SNUPY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SOS .Решите пожалуйста задачу на Паскале miron Помощь студентам 8 27.03.2008 15:32
Решите задачу на Паскале пожалуйста! Side Unseen Помощь студентам 5 31.10.2007 19:22
Решите пожалуйста на Паскале Bagsi Помощь студентам 4 30.10.2007 22:36
Решите пожалуйста задачу на Паскале Bagsi Помощь студентам 1 30.10.2007 14:56