Часовой пояс: UTC + 3 часа




Куратор(ы):   Lord_of_Darkness   



Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 985 • Страница 16 из 50<  1 ... 13  14  15  16  17  18  19 ... 50  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 
Прилепленное (важное) сообщение

Убедительная просьба ко всем, кто выкладывает исходники:
1. Обязательно пользуйтесь тэгом code (иначе очень трудно читать)
2. Старайтесь делать отступы

Если вы хотите чтобы вам помогли в написании программы, внятно излагайте задание!

Прежде чем задать вопрос, воспользуйтесь учебником


Возможно, что нужная вам программа уже написана, поэтому советую просмотреть список здесь и здесь

Отредактировано куратором: Lord_of_Darkness. Дата: 07.07.2006 19:36



Партнер
 

Member
Статус: Не в сети
Регистрация: 19.08.2005
Откуда: СПб
Lord_of_Darkness
:bandhead:
Как я сам не догадался... Ведь было же изначально, потом стер "за ненадобность"... Спасибо!

_________________
=nVidia OverGuru= || -=AMD OverClub=- || HardwareTech_TSC!_Team || ПС - People.overclockers.ru/Nicl || www.hwtech.ru


 

Member
Статус: Не в сети
Регистрация: 18.07.2005
Откуда: Из Москвы
вот такую задачку помогите решить,а то я сижу вот..голову ломаю :(

Дана квадратная матрица целых чисел.Поменять местами элементы главной и побочной диагоналей.

Если можно,еще поясните что и как там.. :roll:

p.s. в двух темах запостил,чтоб уж наверняка :D

_________________
Let's have no sadness — furrowed brow.
There's nothing new in dying now


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
вот кусок кода
Код:
side:=n;
for i:=1 to n do
begin
  temp:= mass[i,i];
  mass[i,i]:=mass[i,side];
  mass[i,side]:=temp; 
  side:=side-1;
end; 

mass - твоя матрица

1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8
красная - главная диагональ, синяя - побочная

PS зачем постить, потом стирать пост, а потом опять постить???

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 18.07.2005
Откуда: Из Москвы
Lord_of_Darkness спасибо,а просто так случайно получилось. :roll: А до этого куска еще много или нет?Программа,вообще большая? :spy:

_________________
Let's have no sadness — furrowed brow.
There's nothing new in dying now


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Russia KamRat Какая программа? Это кусок кода, который делает то, что тебе нужно. В чем проблема?
ЗЫ если есть какие-то вопросы - стучи в асю.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 20.12.2003
Откуда: Россия
Добрые люди, я не могу решить задачку:

Дано целое число К. Найти сумму цифр числа К. (Пусть запись К в десятичной системе есть a[n]...a[2]a[1]a[0]; найти a[0]+a[1]+a[2]+...+a[n]).

Я так понимаю что надо сложить числа, но каким оператором нужно пользоваться ? Если не трудно, приведите здесь, пожалуйста, программку.

_________________
Чёрный Бумер, Чёрный Бумер, Чёрный Бумер!!! Стоп сигнальные огни!!!


 

Member
Статус: Не в сети
Регистрация: 01.06.2003
Откуда: Pskov
Samanthoz
Код:
Const Base= 10; {основание системы счисления}
      K   =0123456789;
Var z,sum:longint;


BEGIN
  z  :=K;
  Sum:=0;
  repeat
    Sum:=Sum+(z mod Base);
    z  := z div Base;
  until z=0;
  writeln(K,' -> ',Sum);
END.

Вроде работает. :)

_________________
ПС: [13-06-2006] Идеальный скриншот BIOS'а ? Запросто ! // K.V.


 

Member
Статус: Не в сети
Регистрация: 20.12.2003
Откуда: Россия
xKVtor

Вот, тебе ОГРОМНОЕ человеческое СПАСИБО за помощь! Супер, такая маленькая программа, а я не справился
Ещё раз благодарю. Жил бы я в Москве, пивом бы угостил!

З.Ы. Есть ещё другая похожая последняя задачка, но я сюда формулу кинуть не могу, не получается.
Добавлено спустя 17 минут, 51 секунду
Это последняя задачка, если трудно, то не парьтесь, не заставляю, но буду огромно благодарен, если решите.

#77

Подправил линк на картинку Lord_of_Darkness
Отредактировано куратором: Lord_of_Darkness. Дата: 17.05.2006 23:34

_________________
Чёрный Бумер, Чёрный Бумер, Чёрный Бумер!!! Стоп сигнальные огни!!!


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Samanthoz вот
Код:
uses crt;
const ArrayLength = 1000;
var
 n, i: integer;
 res: real;
 x: array [1..ArrayLength] of real;
begin
 clrscr;
 write('n = ');
 readln(n);
 res:=1;
 for i:=1 to n do
 begin
   write('x[',i,'] = ');
   readln(x[i]);
   if i>1 then
     res:=res*(1/x[i-1]+x[i]);
 end;

 write('result = ',res:15:5);
 readln;

end.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 20.12.2003
Откуда: Россия
Lord_of_Darkness ОЧЕНЬ БЛАГОДАРЮ за помощь !!!! Ещё раз спасибО!

_________________
Чёрный Бумер, Чёрный Бумер, Чёрный Бумер!!! Стоп сигнальные огни!!!


 

Member
Статус: Не в сети
Регистрация: 15.07.2005
Откуда: Из Новочека
Всем привет! Народ, помогите кто чем может. Очень прошу. Курсовой послезавтра сдавать, если не сдам, то каюк...Задание следующее:
а) Массив А(n,2) представляет данные о координатах точек опробования. Элемент А(n,1) - координата X, A(n,2) - координата Y. Определить порядковые номера наиболее удалённых друг от друга точек.
б) Организавать диалог пользователя с программо при помощи меню, создать подпрограмму для сохранения исходных данных в файле в виде записей следующей структуры:
- координата Х
- координата Y
- кначение параметра в пробе
Создать подпрограмму для чтения данных из файла, предусмотреть возможность задания пути и и мени файла для сохранения исходных данных
в) Создать подпрограмму для вывода, по необходимости, на принтер или на экран исходных данных в виде таблицы
г) Создать подпрограмму для вывода на графический экран схемы расположения точек. Максимально удалённые точки соеденить линией.

_________________________

Народ, если поможете, буду вам очень благодарен

_________________
AMD Sempron64 2500+ 256k MB EPOX KDA3J NCP DDR 440MHz Dual 512 Mb CDRW Sony HDD 40Gb ADSL 6Mb/sec Сайт http://www.adzone.nm.ru


 

Member
Статус: Не в сети
Регистрация: 17.02.2004
Откуда: Санкт-Петербург
Так. Приветствую посетителей данной ветки. Было задано в школе 2 программы написать. Они сами по себе элементарные, но т.к. во время объяснения основ Turbo Pascal я бы слегка занят другой работой, то немного упустил что-то.
Программы такие:
1) Составить программу:
Пользователь вводит 3 числа, 2 из них должны быть одинаковы, об этом прога еще перед вводом этих чисел должна сообщить пользователю. После ввода прога должна вывести на экран число отличное от двух других.
2) Пользователь вводит три разных числа. Прога выводит наибольшее.

Проги очень простые, но я в каждой что-то напутал, и они у меня не работают. Помогите, пожалуйста. Очень нужно к Завтрашнему дню!!!
Добавлено спустя 1 час, 16 минут, 2 секунды
Все, сам справился. Спасибо за внимание.


 

Member
Статус: Не в сети
Регистрация: 10.03.2003
Откуда: Россия, Моск...
Приветствую!
Подскажите, как при помощи pchar задать двумерный массив?
Точнее реализовать вот это, только используя pchar (динамическую структуру):
Код:
A: array[0..9, 1..3] of string =
  (('', '', ''),
    ('сто ', '', 'один '),
    ('двести ', 'двадцать ', 'два '),
    ('триста ', 'тридцать ', 'три '),
    ('четыреста ', 'сорок ', 'четыре '),
    ('пятьсот ', 'пятьдесят ', 'пять '),
    ('шестьсот ', 'шестьдесят ', 'шесть '),
    ('семьсот ', 'семдесят ', 'семь '),
    ('восемьсот ', 'восемдесят ', 'восемь '),
    ('девятьсот ', 'девяносто ', 'девять '));


Это часть программы, которую не так давно написал уважаемой мной Lord_of_Darkness. Нужно это программу написать используя PChar. Завтра предоставлю свои выкладки на эту тему.
Вот исходная прога:
Код:
program Num2Str;
uses crt;

const
  A: array[0..9, 1..3] of string =
  (('', '', ''),
    ('сто ', '', 'один '),
    ('двести ', 'двадцать ', 'два '),
    ('триста ', 'тридцать ', 'три '),
    ('четыреста ', 'сорок ', 'четыре '),
    ('пятьсот ', 'пятьдесят ', 'пять '),
    ('шестьсот ', 'шестьдесят ', 'шесть '),
    ('семьсот ', 'семдесят ', 'семь '),
    ('восемьсот ', 'восемдесят ', 'восемь '),
    ('девятьсот ', 'девяносто ', 'девять '));
  B: array[0..9] of string =
    ('десять ', 'одинадцать ', 'двенадцать ',
     'тринадцать ', 'четырнадцать ', 'пятнадцать ',
     'шестнадцать ', 'семнадцать ', 'восемнадцать ','девятнадцать ');

var
  i, InputNum: integer;
  Numbers: array [1..3] of integer;
  res: string;
begin
  clrscr;
  textcolor(2);
  write('Введите число [0..1000]: ');
  textcolor(white);
  readln(InputNum);
  textcolor(2);
  write('Введено число ');
  if (InputNum<0) or (InputNum>1000) then writeln('введенное число вне допустимого диапазона.')
  else if InputNum=0 then writeln('нуль')
  else if InputNum=1000 then writeln('тысяча')
  else
  begin
    Numbers[1]:=InputNum div 100;
    Numbers[2]:=(InputNum div 10) - Numbers[1]*10;
    Numbers[3]:=InputNum - (Numbers[1]*100 + Numbers[2]*10);

    if Numbers[2]<>1 then
      res:=A[Numbers[1],1]+A[Numbers[2],2]+A[Numbers[3],3]
    else
      res:=A[Numbers[1],1]+B[Numbers[3]];

    textcolor(white);
    write(res);

  end;


  readln;
end.


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
AndreyZZ Ничего не путаешь? Массив A точно двумерный? Просто если это действительно так, то в двух элементах массива будут хранится два разных (координаты) значения и два одинаковых (результат). Сегодня сделать уже не успею, если еще будет нужно - напиши, сделаю завтра.
m2 Выкладывай то, что сам своял, тогда и будем разбираться в чем проблема. Иначе никакого толка... Кстати советую книжечку почитать из поста на верху страницы, там это есть.
PS эх приближается сессия и экзамены в школах, чувствуется завалят лабами...

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 15.07.2005
Откуда: Из Новочека
Lord_of_Darkness Добрый день. Задание писал с листика, переписал вроде правильно. Если время будет, сделайте пожалуйста :beer:

_________________
AMD Sempron64 2500+ 256k MB EPOX KDA3J NCP DDR 440MHz Dual 512 Mb CDRW Sony HDD 40Gb ADSL 6Mb/sec Сайт http://www.adzone.nm.ru


 

Member
Статус: Не в сети
Регистрация: 10.03.2003
Откуда: Россия, Моск...
Вот вообщем-то, мало что сделано:

Код:
Type
    PChar =  ^Char;
  Const
    A : array[0..9, 1..3] of pchar =
      (('', '', ''),
      ('sto ', '', 'odin '),
      ('dvesti ', 'dvadcat ', 'dva '),
      ('trista ', 'tridcat ', 'tri '),
  ....................


Я понимаю, что создал массив указателей, но я совершенно не понимаю, как создать массив пчаров (читай длинных строк). Ведь нет такого типа данных как Pchar... Этот тип определяется как указатель на символ...


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
AndreyZZ
Код:
uses crt, graph;
const
  ArLen = 100;
type
  TProba = record
    X, Y  : longint;
    Param : real;
  end;
  TNumb = array [1..2] of integer;

var
  A: array [1..ArLen] of TProba;
  i, n, index: integer;
  s: string;

procedure InputData;
begin
  write('n = ');
  readln(n);
{  randomize; }
  for i:=1 to n do
  begin
{    A[i].X := random(640);
    A[i].Y := random(480);}
    writeln('Номер точки ',i);
    write('X = ');
    readln(A[i].X);
    write('Y = ');
    readln(A[i].Y);
    write('Param = ');
    readln(A[i].Param);
  end;
end;

procedure SaveData(Path: string);
var
  F : file of TProba;
  fname: string;
  i: integer;
begin
  if Path = '' then fname := 'data.dat'
  else fname := Path;
  Assign(F,fname);
  Rewrite(F);
  for i:=1 to n do
    write(F,A[i]);
  close(F);
end;

procedure LoadData(Path: string);
var
  F : file of TProba;
  fname: string;
  i: integer;
begin
  if Path = '' then fname := 'data.dat'
  else fname := Path;
  Assign(F,fname);
  Reset(F);
  i:=0;
  while not EOF(F) do
  begin
    inc(i);
    read(F,A[i]);
  end;
  n:=i;
end;

procedure Solve(var Slv: TNumb);
var
  i, j, ind1, ind2 : integer;
  Len, NewLen, NewLen2: extended;
begin
  ind1:=1;
  ind2:=2;
  Len:=sqrt(sqr(A[ind1].X-A[ind2].X)+sqr(A[ind1].Y-A[ind2].Y));
  for i:=1 to n-1 do
    for j:=i+1 to n do
    begin
      NewLen:=sqrt(sqr(A[j].X-A[i].X)+sqr(A[j].Y-A[i].Y));
      if NewLen>Len then
      begin
        Len:=NewLen;
        ind1:=i;
        ind2:=j;
      end;
    end;
  Slv[1]:=ind1;
  Slv[2]:=ind2;
end;

procedure OutPutData;
var
  i: integer;
  Slv: TNumb;
begin
  writeln('ЙНННННЛНННННЛННННННННН»');
  writeln('є  X  є  Y  є  Param  є');
  writeln('МНННННОНННННОННННННННН№');
  for i:=1 to n do
     writeln('є',A[i].X:5,'є',A[i].Y:5,'є',A[i].Param:9:2,'є');
  writeln('ИНННННКНННННКНННННННННј');
  writeln;
  Solve(Slv);
  writeln('MaxLen mejdu ',Slv[1],' and ',Slv[2]);
  readln;
end;

procedure DrawPoints;
var
  grDriver: Integer;
  grMode: Integer;
  ErrCode: Integer;
  i: integer;
  Slv: TNumb;
begin
  grDriver := Detect;
  InitGraph(grDriver, grMode,'');
  ErrCode := GraphResult;
  if ErrCode = grOk then
  begin
    Solve(Slv);
    SetColor(1);
    line(A[Slv[1]].X,A[Slv[1]].Y,A[Slv[2]].X,A[Slv[2]].Y);
    for i:=1 to n do
      PutPixel(A[i].X,A[i].Y,12);
    Readln;
    CloseGraph;
  end
  else
    Writeln('Graphics error:', GraphErrorMsg(ErrCode));
end;

begin
  repeat
    clrscr;
    writeln('1. Ввод данных');
    writeln('2. Загрузить из файла');
    writeln('3. Сохранить в файл');
    writeln('4. Вывод данных');
    writeln('5. Отрисовка точек');
    writeln('0. Выход');
    writeln;
    write('Ваш выбор: ');
    readln(index);
    if (index>5) or (index<0) then continue;

    clrscr;
    case index of
      1: InputData;
      2: begin
           write('Введите путь к файлу: ');
           readln(s);
           LoadData(s);
         end;
      3: begin
           write('Введите путь к файлу: ');
           readln(s);
           SaveData(s);
         end;
      4: OutPutData;
      5: DrawPoints;
    end;

  until index=0;
end.


m2 вообщето PChar при установвленной по умолчанию директиве компилятора {$X+} воспринимается как ^Char.
Тебе разве не это нужно?

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 07.12.2005
Помогите, пожалуйста!
Срочно нужно узнать как написать на TP7:
Дано натуральное число N (1..MaxInt). Мне нужно заполнить одномерный массив, например, MAS1 всеми цифрами числа этого N. К примеру, дано число 2346, в массиве будет 2 3 4 6 или 6 4 3 2, в общем не важно, главное, что бы цифры числа были в массиве. Т.к. дано любое нат. число, я думаю надо делать через цикл, только вот совсем не могу отделить все цифры и запихнуть их в массив. Плиз хелп!


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Shagrath юзай mod 10 в цикле и заполняй массив.
к примеру есть число 123456789 в переменной m тогда
Код:
i:=1;
while n>0 do
begin
  A[i]:=n mod 10;
  n:=n div 10;   
  inc(i);
end;

после первого прохода в массив выйдет 9, а число превратится в 12345678, и т.д.
только в массиве оно будет задом на перед, т.е. выводить из массива нужно будет начиная с i-1 ого элемента и до 1 ого.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 08.12.2005
Откуда: Smolensk
Млин скоро сессия, а 2 задачи решить не могу:

- Ввести массив, сотоящий из n чисел. Вывести те элементы массива, которые
нечетны и отрицательны.

- Ввести массив A, состоящий из n чисел. Вывести те элементы массива,
значения которых больше значения предидущего элементв (начиная со второго).

Может кто поможет...

_________________
Вам может показаться, что я повторяюсь, но я буду распоряжаться вашими жизнями, как мне вздумается. Постарайтесь этого не забывать...
|Клан Дедов|


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 985 • Страница 16 из 50<  1 ... 13  14  15  16  17  18  19 ... 50  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan