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




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



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

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

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

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


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

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



Партнер
 

Member
Статус: Не в сети
Регистрация: 10.03.2003
Откуда: Россия, Моск...
Lord_of_Darkness
это ты ее сейчас написал? или она у тебя была?

Я много еще не знаю, даже не все, что ты написал в проге. Буду сейчас разбираться.

Спасибо за помощь!


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
m2 только что написал, пожалуйста =)

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


 

Member
Статус: Не в сети
Регистрация: 10.03.2003
Откуда: Россия, Моск...
Lord_of_Darkness
респект, еще раз спасибо


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
evtil вот тебе по словам-близнецам
Код:
uses crt;

function CompareRtWrd(word1, word2: string):boolean;
var
  i, j : integer;
  IsRepeat, Ident : boolean;
begin
  Ident:=true;
  CompareRtWrd:=false;
  if Length(Word1) <> Length(Word2) then
    Exit;
  if Word1 = Word2 then
    Exit;

  for i:=1 to Length(Word1) do
  begin
    IsRepeat:=false;
    for j:=1 to Length(Word1) do
      if Word1[i] = Word2[j] then IsRepeat:=true;
    if not IsRepeat then Ident:=false;
  end;

  CompareRtWrd := Ident;

end;

var
  SourceStr : string;
  words: array [1..100] of string;
  i, j, WordsCount : integer;
  IsRtWords: boolean;
begin
  clrscr;
  write('Ваш текст: ');
  readln(SourceStr);
  WordsCount:=1;
  for i:=1 to Length(SourceStr) do
  begin
    if SourceStr[i] in [' ',',','.'] then
       Continue
    else
    begin
      if SourceStr[i-1] in [' ',',','.'] then
         inc(WordsCount);
      words[WordsCount]:=words[WordsCount]+SourceStr[i];
    end;
  end;

  Write('Слова-близнецы в этом предложении ');
  IsRtWords:=false;
  for i:=1 to WordsCount-1 do
    for j:=i+1 to WordsCount do
    begin
      if CompareRtWrd(Words[i],Words[j]) then
      begin
        if not IsRtWords then write(': ')
        else writeln(', ');
        write(' ',Words[i],' и ',Words[j]);
        IsRtWords:=true;
      end;
    end;

    if not IsRtWords then
      Write('не найдены.');

  readln;
end.

Я так понимаю, одинаковые слова близнецами не являются?

По второму заданию требуются пояснения. Т.е. хотябы какие должны быть входные и выходные данные.

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


 

Member
Статус: Не в сети
Регистрация: 08.03.2004
Спасибо.
Задача 2 переписана из задачника без изм. в тексте. Я думаю входные данные длжны быть кол-во человек. А в конце проги надо указать человека в первоначальном кругу, который оказался катым.


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
evtil вот, лови
Код:
uses crt;

function CalcNum(n, k: integer): integer;
var
  i, ElCount, DcEl : integer;
  A: array [1..1000] of byte;
begin
  for i := 1 to n do
    A[i] := i;
  ElCount := n;

  repeat
    if k <= ElCount then DcEl := k
    else if (k mod ElCount) = 0 then DcEl:=ElCount
    else
    begin
      DcEl := (k mod ElCount);
    end;

   {..... test .....}
   write('[');
   TextColor(white);
   for i:=1 to ElCount do
   begin
     if i=DcEl then TextColor(12)
     else TextColor(white);
     write(' ',A[i],' ');
   end;
   TextColor(white);
   writeln(']');
   {.... -test- ....}

    for i := DcEl to ElCount-1 do
      A[i]:=A[i+1];

    ElCount := ElCount - 1;

  until ElCount <= 1;

  CalcNum := A[1];

end;

var
  n, k, num : integer;
begin
  clrscr;
  write('Введите n: ');
  readln(n);
  write('Введите k: ');
  readln(k);
  TextColor(white);
  num := CalcNum(n,k);
  write('Номер оставшегося человека в первоначальном круге ',num);
  readln;
end.

test - это для визуализации исключения народа :)

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


 

Member
Статус: Не в сети
Регистрация: 10.03.2003
Откуда: Россия, Моск...
а как процедуры изображаются на блок-схемах? также как функции? только в первом и последнем блоке пишутся "начало" и "конец" (в функциях входные и выходные параметры). А в теле проги тоже двойные вертикальные полосы?


На самом деле мне надо изобразить модуль.
Я собираюсь изобразить каждую процедуру и функцию отдельно, потом написать код модуля. Потом блок-схему самой проги, а потом код проги.

Как по науке?


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


 

Member
Статус: Не в сети
Регистрация: 25.11.2005
Откуда: краснодар
если размеры полей определены то используй рекорд если нет то
какие нить маркеры обозначающие границы записи(ето я о файле)
проверять значения введенные юзером можно определив в программе
множества символов которые могут входить в введенные данные(
например в число могут входить '0'..'9','-','+')и проверять после
ввода на соответствие
хорошо шо писать на паскале. а вот если бы было принципиально на С...

_________________
зри в корень(с) Козьма Прутков


 

Member
Статус: Не в сети
Регистрация: 31.05.2004
m2 насколько мне извесно все подпрограммы изображаются одинаково

А у меня вот такой вопрос:
Как написать процедуру (функцию), которая искала бы максимальные из простых чисел в матрице
и выводила бы номера строк, где эти числа находятся...
это единственная загвостка в моей проге...


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Genius Exoticus Пока в голову пришел только такой вариант:
1. ищем максимальный элемент матрицы
2. считаем все простые числа, до найденного максимума, включая их в отдельный массив
3. ищем перебором простые числа (кстати, что значит максимальные? максимальные в строках/столбцах?)

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


 

Member
Статус: Не в сети
Регистрация: 20.12.2005
Откуда: Волгоград
Pascal - это идеальная платформа для обучения. Вот и заставляют нас в учебном заведении писать проги на нем...
Задача: Заданы два двумерных массива произвольных размеров, состоящий из целых чисел. Найти количество элементов одного массива, не равных нулю и сумму четных элементов другого. Если значение количества есть четное число, найти минимальный элемент этого массива, если не четное, то найти максимальный элемент другого массива. Оба массива отпечатать в общем виде.

Код программы:

Код:
Program MASS;
Uses CRT;
var
a,b: array [1..20, 1..20] of integer;
A1,B1:integer;
min,max,t,y,i,j,n,m,r,s,z:integer;
BEGIN
CLRSCR;
R:=0;
S:=0;
Writeln ('Vvedite razmer massiva A:');
Write ('A:=');
Read (A1);
Writeln ('2x Massiv A:'); writeln;
RANDOMIZE;
FOR i:=1 TO A1 DO
BEGIN
FOR j:=1 TO A1 DO
BEGIN
A[i,j]:=Random (50);
write (A[i,j]:3);
write; END;
Writeln; Writeln;
END;
FOR i:=1 TO A1 DO
BEGIN
FOR j:=1  TO A1 DO
IF a[i,j]<>0 THEN
R:=R+1;
END;
IF r<>0 THEN
writeln ('Kol-vo elementov ne ravnix 0:', R);
IF r=0 THEN
writeln ('Kol-vo elementov ne ravnix 0 HET');
writeln;
Writeln ('Vvedite razmer massiva B:');
Write ('B:=');
Read (B1);
Writeln ('2x Massiv B:');
RANDOMIZE;
FOR n:=1 TO B1 DO
BEGIN
Writeln;
FOR m:=1 TO B1 DO
BEGIN
B[n,m]:=Random (50);
write (B[n,m]:3);
write;
END;
Writeln; Writeln;
END;
FOR n:=1 TO B1 DO
FOR m:=1 TO B1 DO
BEGIN
Y:=B[n,m] MOD 2;
IF Y=0 THEN S:=S+B[n,m];
END;
Writeln ('Vivod summu: ',S);
Writeln;
T:=R MOD 2;
IF T=0 THEN  BEGIN
MIN:= A[i,j];
FOR i:=1 TO A1 DO
BEGIN
FOR j:=1 TO A1 DO
IF a[i,j]<min THEN
MIN:=A[i,j];
END; END;
IF T=0 THEN
writeln ('Minimalnoe znachenie massiva A: ',min);
T:=R MOD 2;
IF T=1 THEN
max:= B[n,m];
FOR n:=1 TO B1 DO
Begin
FOR m:=1 To B1 DO
IF B[n,m]>=max THEN
max:=B[n,m];
END;
IF T<>0 THEN
writeln ('Maximalnoe znachenie massiva B:',max);
readkey
END.


P.S. Прога легкая, но, запутаться тоже легко.
Отредактировано куратором: Lord_of_Darkness. Дата: 05.03.2006 15:24

_________________
Все в этом Мире имеет какой то смысл. В нем нет ничего бесполезного или случайного...


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
GrifeX так в чем вопрос?

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


Последний раз редактировалось Lord_of_Darkness 03.05.2006 14:25, всего редактировалось 1 раз.

 

Member
Статус: Не в сети
Регистрация: 20.12.2005
Откуда: Волгоград
Lord_of_Darkness:
Помоги с задачей, я что-то не доганяю.
Задача на работу с файлами, процедурами и функциями.
Условие:
Создать числовой файл F. Найти сумму положительных компонент файла,
расположенных до максимальной компоненты файла. Сумму и содержание файла распечатать.

_________________
Все в этом Мире имеет какой то смысл. В нем нет ничего бесполезного или случайного...


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
GrifeX вот, примерно так.
на функции не поскупился :)
Код:
uses crt;
const
  NumbersCount = 15;
  FileName = 'numbers.int';

var
  Numbers : array [1..NumbersCount] of integer;
  i, MaxIndex : integer;

function FileExists(FileName: String): Boolean;
var
  F: file;
begin
  {$I-}
  Assign(F, FileName);
  Reset(F);
  Close(F);
  {$I+}
  FileExists := (IOResult = 0) and (FileName <> '');
end;

procedure WriteFile(FileName: string);
var
  fl  : file of integer;
  i, num: integer;
begin
  Assign(fl,FileName);
  rewrite(fl);
  for i := 1 to NumbersCount do
  begin
    num:=random(100)-50;
    write(fl,num);
  end;
  Close(fl);
end;

function ReadFromFile(FileName: string): boolean;
var
  fl  : file of integer;
  i : integer;
begin
  if FileExists(FileName) then
  begin
    Assign(fl,FileName);
    Reset(fl);
    i:=1;
    while not EOF(fl) do
    begin
      read(fl,Numbers[i]);
      inc(i);
    end;
    ReadFromFile := true;
  end
  else ReadFromFile := false;
end;

function FindMax: integer;
var
  i, max, index: integer;
begin
  max := Numbers[1];
  index := 1;
  for i := 2 to NumbersCount do
    if Numbers[i] > max then
    begin
      max := Numbers[i];
      index := i;
    end;
  FindMax := index;
end;

function CalcSumm(MaxIndex: integer): integer;
var
  i, summ: integer;
begin
  summ:=0;
  for i:= 1 to MaxIndex do
    if Numbers[i] > 0 then
       summ := summ + Numbers[i];
  CalcSumm := summ;
end;

begin
  clrscr;
  randomize;
  WriteFile(FileName);
  if ReadFromFile(FileName) then
  begin
    writeln('Numbers from file (',NumbersCount,'):');
    for i := 1 to NumbersCount do
      write(Numbers[i],'; ');
    writeln;
    MaxIndex := FindMax;
    writeln('MaxIndex = ',MaxIndex);
    writeln('Summa = ',CalcSumm(MaxIndex));
  end
  else writeln('File ',FileName,' not found');
  readln;
end.

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


 

Member
Статус: Не в сети
Регистрация: 20.12.2005
Откуда: Волгоград
Lord_of_Darkness,
Спасобо тебе ОГРОМНОЕ.
Ты меня сегодня просто спас.
И за какое время ты её написал?

_________________
Все в этом Мире имеет какой то смысл. В нем нет ничего бесполезного или случайного...


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
GrifeX пожалуйста.
Цитата:
И за какое время ты её написал?

м-м, не замерял специально :) ну минут 10 наверное, не больше.

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


 

Member
Статус: Не в сети
Регистрация: 20.12.2005
Откуда: Волгоград
Lord_of_Darkness, :applause:

_________________
Все в этом Мире имеет какой то смысл. В нем нет ничего бесполезного или случайного...


 

Member
Статус: Не в сети
Регистрация: 20.12.2005
Откуда: Волгоград
Нужна помощь в создании базы данных:

Создать базу данных «Overclockers»
Она должна содержать:
1. Ник пользователя
2. Производитель CPU (Пример – Intel/AMD)
3. Модель CPU (Пример – Pentiun 4/Athlon 63)
4. Штатная частота CPU
5. @ Частота CPU
6. Видеосистема
7. Результат в 3Dmark 01
8. Результат в 3Dmark 03
9. Результат в 3Dmark 05
10. Результат в 3Dmark 06
11. Система охлаждения
12. Email пользователя
13. ICQ пользователя
14. Напряжение ядра
15. Максимальная температура

В меню должно быть:
1) Создать базу
2) Дополнить базу
3) Редактировать базу
4) Поиск
4) Удалить базу.

Организовать поиск по базе для значений:

16. Производитель CPU (Пример – Intel/AMD)
17. Модель CPU (Пример – Pentiun 4/Athlon 63)
18. Штатная частота CPU
19. @ Частота CPU
20. Система охлаждения

Сделать базу как можно проще, не используя сложных операторов.

_________________
Все в этом Мире имеет какой то смысл. В нем нет ничего бесполезного или случайного...


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
GrifeX Вот база. Чуть не бросил по пути, но раз уж обещал...
Там еще есть мелкие недостатки в красивостях (типа где-то лишний раз строка переводится), но это уже сам подправь по своему вкусу.

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


Последний раз редактировалось Lord_of_Darkness 03.05.2006 14:27, всего редактировалось 1 раз.

 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
GrifeX С кирилицей решается просто - переведи паскаль в оконный режим. Если уж очень приперло - вот мой BP7

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


Последний раз редактировалось Lord_of_Darkness 03.05.2006 14:28, всего редактировалось 1 раз.

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

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


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

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


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

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