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




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



Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 985 • Страница 39 из 50<  1 ... 36  37  38  39  40  41  42 ... 50  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 
Прилепленное (важное) сообщение

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

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

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


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

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



Партнер
 

Junior
Статус: Не в сети
Регистрация: 24.12.2006
у меня вопрос - почему в turbo delphi (Borland® Delphi® for Microsoft® Windows)
при использовании "randomize", счетный цикл "for .. to .. do" считает в обратном порядке?


 

Member
Статус: Не в сети
Регистрация: 20.12.2005
Откуда: Волгоград
overover писал(а):
Если вы хотите чтобы вам помогли в написании программы, внятно излагайте задание!

Прошу помочь с решением пары задач, в связи со сложившейся ситуацией на работе сделать это самостоятельно не в состоянии:
#77

Необходимо написать программу и блок схему к ней. Буду весьма благодарен за помощь!

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


 

Member
Статус: Не в сети
Регистрация: 24.04.2008
Есть задачка: Найти сумму всех цифр, входящих в заданную строку.

написал код:
Код:
Program probel123;
uses crt;
Var s,c,pus: string; k,n,x,b,sum:integer;
begin
clrscr;
   sum:=0;
   pus:='';

   read (s);

   for n:=1 to length(s) do
       begin
          if (ord(s[n])>=48) and (ord(s[n])<=58) then
             begin
                pus:=pus+s[n];
             end;

   for k:=1 to 3 do
       begin
          c:=copy(pus,k,1);
          val(c,x,b);
          sum:=sum+x;
       end
   write(sum);
   readkey
end.

вообщем проблема в выполнении оператора val - в цикле, так как именно в цикле он выводит непонятные значения и причем их больше чем проходов по циклу так вот
уже весь день убил на решение проблемы думал сам справлюсь но не получилось помогите в заранее очень благодарен!!!


 

Member
Статус: Не в сети
Регистрация: 04.10.2004
SKY-LOST писал(а):
Код:
if (ord(s[n])>=48) and (ord(s[n])<=58) then
Поправьте на такую строку
Код:
if (ord(s[n])>=48) and (ord(s[n])<58) then
Выброс цифр в отдельную строку и второй цикл вообще-то излишни. Можно сразу суммировать, не забывая отнять 48 от кода цифры.
P.S. Никто не мешает пройти программу в пошаговом режиме.


 

Member
Статус: Не в сети
Регистрация: 24.04.2008
переделал не помогло все равно выдает оператор val выдает непонятные значения(((
а как пройти программу в пошаговом режиме?


 

Member
Статус: Не в сети
Регистрация: 04.10.2004
SKY-LOST писал(а):
все равно выдает оператор val выдает непонятные значения
1. Зачем вообще использовать val (я уже писал, что можно устранить лишнее)?
2. Кто мешает привести пример исходной строки и получаемых данных?

SKY-LOST писал(а):
а как пройти программу в пошаговом режиме?
F8/F9. Попутно можно (и нужно :)) просматривать значения переменных. Загляните в меню Debug и ознакомьтесь с его возможностями.


 

Member
Статус: Не в сети
Регистрация: 24.04.2008
да мне как-бы по задания надо именно через процедуру val сделать, НО большое спасибо за подсказку альтернативного способа, теперь буду стараться мыслить более творчески! Попробую сдать отчет таким способом посмотрим что скажет преподователь.


 

Member
Статус: Не в сети
Регистрация: 04.10.2004
SKY-LOST
Ну и попутно по поводу кода несколько комментариев:
1. Внимательно относитесь к операторным скобкам begin end и синтаксису.
2. Во втором цикле странно видеть константу в качестве граничного значения (3).


 

Member
Статус: Не в сети
Регистрация: 24.04.2008
maco писал(а):
SKY-LOST
Ну и попутно по поводу кода несколько комментариев:
1. Внимательно относитесь к операторным скобкам begin end и синтаксису.
2. Во втором цикле странно видеть константу в качестве граничного значения (3).

да это я пытался выявить что же всетаки происходит поэтому поставил там 3 и решил вводить три значения) ну вот такими вот "махинациями" и выводом разных переменных я пришел к тому что оператор val выводит непонятно что :)


 

Member
Статус: Не в сети
Регистрация: 04.10.2004
SKY-LOST писал(а):
я пришел к тому что оператор val выводит непонятно что
Вообще-то при нормальной расстановке операторных скобок begin end и установке в качестве конечного значения второго цикла длины строки pus никаких проблем с процедурой val нет, результат получается правильным :).


 

Member
Статус: Не в сети
Регистрация: 24.04.2008
maco писал(а):
SKY-LOST писал(а):
я пришел к тому что оператор val выводит непонятно что
Вообще-то при нормальной расстановке операторных скобок begin end и установке в качестве конечного значения второго цикла длины строки pus никаких проблем с процедурой val нет, результат получается правильным :).

огромное спасибо вам за помощь!!!
Я так и не понял как быть с операторными скобками :(


 

Member
Статус: Не в сети
Регистрация: 04.10.2004
Не закрыта операторная скобка в первом цикле - пустая строка в вашем примере :).
А во втором цикле после end точку с запятой желательно поставить бы :).
Хотя возможно это ошибки копирования при написании поста, при таких ошибках програма не будет компилироваться :).


 

Member
Статус: Не в сети
Регистрация: 24.04.2008
maco писал(а):
Не закрыта операторная скобка в первом цикле - пустая строка в вашем примере :).
А во втором цикле после end точку с запятой желательно поставить бы :).
Хотя возможно это ошибки копирования при написании поста, при таких ошибках програма не будет компилироваться :).

maco спасибо вам огромное!!!
вся проблема в случае с процедурой val была вызвана какраз незакрытой операторной скобкой в первом цикле.


 

Member
Статус: Не в сети
Регистрация: 13.06.2007
Откуда: UK/Glasgow
Фото: 0
Привет всем!
Нам задали на дом сделать рисунок в Паскале.
Хотел спросить, можно ли делать градиентные заливки в Паскале?
Добавлено спустя 3 часа, 55 минут, 7 секунд
И можно ли сделать прямоугльник с закруглёнными углами?

_________________
-=AMD POWER FAN CLUB=-


 

Member
Статус: Не в сети
Регистрация: 11.01.2009
Обьясните, для чего в переменных используется знак ^ чем переменная с этим знаком отличает без него, например S1^.data


 

Member
Статус: Не в сети
Регистрация: 04.10.2004
tolikrog
Поглядите в сторону указателей и динамической памяти.


 

Junior
Статус: Не в сети
Регистрация: 25.06.2008
Фото: 14
S1^.data означает что в переменной S1 записан адрес некоей структуры, из которой будет взято поле data

_________________
i286,12->a386DX40->i486DX33@50->i486DX4-100->a486DX5-133@150->iPentium120@133->iCel266@300->Duron700@980->Athlon2500+@2100->C2D E6600@3,2


 

Member
Статус: Не в сети
Регистрация: 24.04.2008
Здравствуйте! Нужно помощь. В заранее очень благодарен!

задача такая:
Цитата:
2. Сформировать массив А из 12 целых чисел с клавиатуры, вывести его на экран по 3 элемента в строке. Получить массив В, в котором будут расположены сначала четные числа из массива А, а затем – нечетные.


написал код:
Код:
program LABA_10;
uses crt;
const n=12;
var
mas,masB,masP:array [1..n] of integer; i,j:integer;  e:boolean;
begin
    clrscr;
    writeln ('vvod massiva: ');
    for i:=1 to n do
        begin
          read (mas[i]);
        end;
     writeln;
    for i:=1 to n do
        begin
          if (i=3) or (i=6) or (i=9) then writeln (mas[i]:3) else write (mas[i]:3);
        end;
        writeln;
    readkey
end.

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

вот одна из попыток:
Код:
program LABA_10;
uses crt;
const n=12;
var
mas,masB,masP:array [1..n] of integer; i,j:integer;  e:boolean;
begin
    clrscr;
    writeln ('vvod massiva: ');
    for i:=1 to n do
        begin
          read (mas[i]);
        end;
     writeln;
    for i:=1 to n do
        begin
          if (i=3) or (i=6) or (i=9) then writeln (mas[i]:3) else write (mas[i]:3);
        end;
        writeln;

    for i:=1 to n do
       masP[i]:=mas[i];

    for i:=1 to n do
      begin
         e:=odd(masp[i]);
         if e=false
           then
             begin
               for j:=1 to n do
                 masB[j]:=masP[i];
             end;
       end;
     for i:=1 to n do
        begin
          if (i=3) or (i=6) or (i=9) then writeln (masB[i]:3) else write (masB[i]:3);
        end;




    readkey
end.


помогите пожалуйста решить эту задачку :insane:


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
SKY-LOST
все намного проще. Приведу только ключевые куски кода
Код:
// вывод по 3 элемента
for i:=1 to n do
begin
  write(A[i],' ');
  if (i mod 3) = 0 then writeln;
end;

// формирование массива B
k := 1;
for i:= 1 to n do
  if (A[i] mod 2) = 0 then // копируем четные элементы в начало массива
  begin
     B[k] := A[i];
     inc(k);
  end;

for i:= 1 to n do
  if (A[i] mod 2) <> 0 then // остальную часть заполняем нечетными
  begin
     B[k] := A[i];
     inc(k);
  end;


ну или, поскольку условия копирования не уточняются, можно ввести второй счетчик m и за один проход цикла разобрать весь массив, перенося четный элемент массива A в k-ю ячейку массива B, а нечетный - в m-ю. Тогда, изначально k := 1, а m := n и после каждого срабатывания воответствующего условия k увеличивать на 1, а m уменьшать.

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


 

Member
Статус: Не в сети
Регистрация: 24.04.2008
Lord_of_Darkness как ты и сказал действительно просто...
дело в том что я не знал такой оператор inc :(
и все маялся как же сделать так чтобы вторая переменная в цикле не изменялась на еденицу когда условие не выполняется
спасибо огромное Lord_of_Darkness
сейчас соберу полностью программу...


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 985 • Страница 39 из 50<  1 ... 36  37  38  39  40  41  42 ... 50  >
-

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


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

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


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

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