Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Решение задач на Pascal. Форум 2
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ]
Модераторы: paradise, KMA
  

DeFraG



Новичок


Цитата: MooK написал 23 мая 2008 15:47
Пожалуйста помогите решить задачу.

Условие: Дано натуральное число n, 1 < n < 30000. Напишите программу, которая изменит порядок цифр числа так, чтобы получить минимально возможное число.

Примечание: В записи числа n цифра 0 отсутствует.

Ввод: число n  вводится с клавиатуры.

Вывод: на экран в строку через пробел выводится исходное и преобразованное число.

Пожалуйста помогите, а то мне придётся летом перездавать  информатику, а мне этого очень не хочется. Помогите плиз...


Разбиваешь число на цифры, сортируешь их в порядке возрастания и получаешь наименьшее возможное число которое можно составить из данных цифр.
Code Sample:
uses crt; 

var i,j : integer;
   x : word;
   s : string;
   c : char;

begin
clrscr;
 readln(x);
 if (x < 1) or (x > 30000) then exit;
 str(x,s);

for i := 1 to length(s) do
begin
 for j := 1 to length(s) do
  if s[j] > s[ i ]  then
    begin
      c := s[j];
      s[j] := s[ i ];
      s[ i ] := c;
    end;
end;
 writeln(x,' ',s);
repeat until keypressed;
end.




(Сообщение отредактировал KMA 25 мая 2008 18:11)

Всего сообщений: 5 | Присоединился: май 2008 | Отправлено: 25 мая 2008 11:26 | IP
Guest



Новичок

помогите решить задачку
Дана квадратная матрица {V[i;j]} целочисленных элементов. Найти произведение элементов побочной диагонали и количество нулевых элементов в предпоследнем столбце матрицы.
Если логарифм первой из этих величин может быть вычислен, то отпечатать значение
произведения данного логарифма и второй из найденных величин. В противном случае отпечатать сумму найденных двух величин.
вот что у меня вышло и не могу понять, в чем ошибочка. Подскажите пожалуйста
Uses Crt;
Var V : Array [1..20, 1..20] of Integer;
    i, j, N : Integer;
    R,S,X,Q : Integer;
Begin
 ClrScr;
 Write('kol strok i stolb - ');
 ReadLn(N);
 For i := 1 to N do
    For j := 1 to N do
      begin Write('V[' , i , ', ' , j , '] = ');
              ReadLn(V[i, j])
      end;
 ClrScr;
 WriteLn('ISXOdnay matriza :'); WriteLn;
 For i := 1 to N do
    begin
      For j := 1 to N do Write(V[i, j] : 5);
      WriteLn
    end;
Begin
R:=1;
For i:=1 to n do
R:=R*V[i,n+1-i];
WriteLn('R=',R);
readln
END;
begin
for i:=1 to n do
if V[i,j-1]=0 then
S:=S+1;
writeln('s=',S);
readln
end;
if R>=1 then
begin
X:=ln(R)*S;
writeln ('X=',X);
end;
else
begin
Q:=S+R;
writeln('summa=',Q);
end;
readln
end.

Всего сообщений: Нет | Присоединился: Never | Отправлено: 25 мая 2008 17:21 | IP
KMA



Долгожитель


Здравствуйте.  
В этом участке кода, я пытаюсь записать пиксель на экран.
Видеорежим - 640х480 16 цветов.
Из TeachHelp узнал, что начало буфера экрана - a000h
Опытным путём выяснил, что вместо цвета зажигаются 8 последовательных пикселов по битовой маске, белым цветом. Как зажечь пиксел произвольным цветом ?



Ну во-первых, ассемблер в тему Паскаля немного не верно. А так могу сказать, что есть стандартный модуль graph (который позволяет и режим ставить, и его закрывать и по активным страницам бегать и так далее) а в нем процедура putPixel (x, y, color). Которая и зажигает пиксель на экране нужного цвета

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 25 мая 2008 18:00 | IP
Guest



Новичок

В символьной матрице В размером MxN поменять  местами столбцы с за-данными номерами.
Need Help. Решить задачу надо на паскаль при этом не используя процедуры.

Всего сообщений: Нет | Присоединился: Never | Отправлено: 25 мая 2008 18:48 | IP
DeFraG



Новичок


Цитата: KMA написал 25 мая 2008 18:00

Ну во-первых, ассемблер в тему Паскаля немного не верно. А так могу сказать, что есть стандартный модуль graph (который позволяет и режим ставить, и его закрывать и по активным страницам бегать и так далее) а в нем процедура putPixel (x, y, color). Которая и зажигает пиксель на экране нужного цвета


Это вставка на ассемблере в код на паскале...
Эту тему я сразу увидел, а тему про ассемблер не заметил.
Процедура putpixel работает очень медленно поэтому я попытался использовать ассемблер. Немного изучив технику отрисовки пикселей в режимах с 16 цветами, я узнал, что достичь в таких режимах высокой скорости отрисовки невозможно в принципе из-за постоянной потребности перепрограммировать регистры, доступ к которым осуществляется намного медленнее, чем к видеопамяти.
Сейчас переписываю программу под VESA/VBE.

Всего сообщений: 5 | Присоединился: май 2008 | Отправлено: 25 мая 2008 19:25 | IP
KMA



Долгожитель

По поводу этого могу сказать только одно... Изобретая вновь велосипед не факт, что он у тебя быстрее поедет и лучше будет управляем... Наверное, люди постарались оптимизировать под Паскаль функции прорисовки. Юзай уж тогда OpenGL или DirectX... Паскаль был и остается языком для написание учебных прог... (про FreePascal я молчу, это реально хороший проект)

Если хочешь, можешь писать прогу под Asm сразу же, тогда это реально будет быстрее...

Если надо все же под высокий язык то C дает преимущество заметнее чем в обычном Паскале. Поэтому подумай еще над этими вещами.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 25 мая 2008 22:36 | IP
barcik


Новичок

Дан вектор. Найти произведение элементов больше числа К.

Помогите решить плиз

Всего сообщений: 1 | Присоединился: май 2008 | Отправлено: 26 мая 2008 11:41 | IP
Spaun666


Новичок

Ребят, подправьт задачку пожалуйста. Я че то с выводом данных намудил. Задание: дан массив, ввожу с клавы число, если оно есть в массиве-показать его номер, если нет-ответом должно быть число ноль.
PROGRAM MASSIV;
VAR A:ARRAY [1..5000] OF INTEGER;
K,N,U,I,Z:INTEGER;
BEGIN
WRITELN ('VVEDITE RAZMER MASSIVA');
READLN (N);
FOR I:=1 TO N DO BEGIN
WRITELN ('VVEDITE ', I, ' ELEMENT');
READLN (A);
END;
WRITELN ('VVEDITE CHISLO');
READLN (U);
FOR Z:=1 TO N DO BEGIN
IF U=A[Z] THEN WRITELN ('CHISLO VSTRETILOS NA ' ,Z , ' POZICII');

END;

IF (U<>A[Z]) OR (Z=N) THEN WRITELN ('TAKIH ELEMENTOV NET.OTVET 0');


READLN;
END.

Всего сообщений: 3 | Присоединился: май 2008 | Отправлено: 26 мая 2008 18:18 | IP
Den 4 ik



Новичок

доброго время суток!люди,подскажите кто знает.есть файл,объявлен как нетипизированный.как вывести все нечетные байты из файла на экран?подскажите что использовать,пожалуйста!

Всего сообщений: 6 | Присоединился: апрель 2008 | Отправлено: 26 мая 2008 23:22 | IP
M a r i n k a



Новичок

Всем здравствуйте!
Естьу меня одна задачка по Паскалю, и что-то я даже не знаю, как к ней подступиться. Задачка следующая:
В матрице В [5*8] поместить максимальный элемент на место элемента В [1*1] путем перестановки строк и столбцов.
Вывести на экран исходный и полученный массивы.
Что-то я  не очень могу понять, как это -- путём перестановки строк и столбцов? И какой вид это будет иметь в программе?
И, если можно, выложите сюда примеры решения таких же задачек на Паскале, а то я не представляю, как писать эту программку... Спасибо заранее огромное...

Всего сообщений: 4 | Присоединился: май 2008 | Отправлено: 28 мая 2008 12:12 | IP

Эта тема закрыта, новые ответы не принимаются

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ]

Форум работает на скрипте © Ikonboard.com