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

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Решение задач на 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
  

KMA



Долгожитель

Погоди... во-первых, оформляй код по человечески, если хочешь, чтобы люди тебя понимали правильно... Во вторых, программа, это тебе не сочинение, на середине никто и никогда не останавливается, тем более хотя бы begin и end расставила, ведь потом запутаешься. Вот что ты хотела сказать своим "i:="??? Уснул(а) на этом что-ли? Не представляешь как это не культурно и некрасиво.  

Задача проста. И как обычно делиться на три этапа.

Этап 1. Организовываем ввод данных. В данном случае его мы опускаем, т. к. в файле уже есть строки.

Этап 2. Обрабатываем.

Этап 3. Выводим (т. е. сохраняем в файл). И все это делается просто:


Code Sample:
 
BEGIN
     assign (f, 'abc.txt');
     assign (g, 'def.txt');
     reSet (f);    {из этого файла будем читать строки}
     reWrite (g);{в этот записывать}
     
     while not eof(f) do
       begin
         readLn (f, s); {считаем строку}
         {если конец строки равен началу}
         if s[ 1 ]=s[ length(s) ]  
            then  
             begin
                {первая половина строки}
              myStr:=copy (s, 1, length (s) div 2);
               {добавляем пять пробелом в середину}
              myStr:=myStr+'     ';
                {вторая половина строки}
              myStr:=myStr+copy(s, (length(s) div 2)+1, length(s) div 2);
                {пишем эту строку в файл}
               writeLn (g, myStr);
             end;
       end;
     close (f);
     close (g)
END.



Вот и вся задача. Проработай только ситуацию, когда строка имеет нечетное количество символов. И больше так свой код не пиши.


(Сообщение отредактировал KMA 10 янв. 2008 19:53)

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 10 янв. 2008 19:50 | IP
Guest



Новичок

Помогите написать задачу на Паскале.
Задача: У Васи есть N яблок. Друзья спросили у него К бялок. Помогите ему выбрать яблоки, которые нужно отдать так, чтобы суммарный вес оставшихся яблок был максимален.
Формат входных данных: на первой строке входного файла даны два числа N и К (1<K<N<10000) - колчиство яблок у Васи и количество яблок которые нужно отдать. На второй строке строке дано N число в пределах от 1 до 10 - веса яблок. числа в строках разделены пробелами
Формат выходных данных
в выходной файл выведите одно число - максимальный возможный суммарный вес оставшихся яблок.

Всего сообщений: Нет | Присоединился: Never | Отправлено: 14 янв. 2008 13:15 | IP
KMA



Долгожитель

Тут есть два решения. Первое, это жадный алгоритм. Второй это тупо в лоб. Сортируем массив с весом яблок а затем отбираем первые N. Чтобы работало шустро можно предложить быструю сортировку.

Guest, у тебя собственно какие вопросы? Если нужен алгоритм, то пожалуйста жадный алгоритм.

Или если хочешь воспользоваться лобовым методом, то предлагаю, следующее решение:
1. Сортируем массив (времени уйдет уйма, поэтому советую  быструю сортировку) из N элементов.
2. Начинаем с K+1 элемента по N считать суммарный вес. Если не знаешь, то суммарный вес считается как
Code Sample:
 
s:=0;
for i:=k+1 to n do
s:=s+a[ i ];


где a это заданный массив веса. Вот собственно и все. Хочешь больше, тогда пробуй решать сам, а я постараюсь тебе помочь.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 14 янв. 2008 15:35 | IP
Fedos



Новичок

Помогите плизз.Совсем не получаеться составить программу.
Задача.
Даны наименования вузав.Выеснить какие из них начинаються на букву 'М'
Мне надо сделать такчто бы прога проверяла несколько слов,сравнивала первую букву с 'М' и если совпадает то выводила его.
Не надо использовать Delete.


program l3;
var
   st:array [1..5] of string;
   i,p:integer;
begin
      writeln('BBedite 5 Byzof');
      for i:=1 to 5 do readln(st[ i ]);
      For i:=1 to 5 do
      if st[i,1]=m
         then
          begin
             writeln(st[ i ]);
             p:=p+1;
          end;
      if p=0 then
          writeln('Net ');
end.

у меня так получилось.только она всё ровно не правильно работает


(Сообщение отредактировал Fedos 30 янв. 2008 13:35)

КМА: четко читай правила! Я там упоминал, что необходимо ставить пробелы между [ i ], так как на BBCode это означает выделить курсивом. И проверяй свое сообщение перед отправкой. Так же используй отступы и оформляй текст как положено.



(Сообщение отредактировал KMA 30 янв. 2008 14:28)


(Сообщение отредактировал Fedos 30 янв. 2008 16:11)

Всего сообщений: 3 | Присоединился: январь 2008 | Отправлено: 30 янв. 2008 11:19 | IP
KMA



Долгожитель

Так, ну во первых, ты все таки используешь одномерные массивы, поэтому запись
st[i, 1]=m
просто тупо и непонятно. собственно здесь у тебя основная ошибка  Теперь посмотри как это выглядит в правильном коде коде:

Code Sample:
 
if (st[ i ] [1]='M') or (st[ i ] [1]='м')
  then
     begin
        ...
     end;



Еще есть одна ошибка. Я такого слова зарезервированного не знаю user (точнее знаю, но из другой темы), а так же если это опечатка, то модуля cet я так же не знаю, может ты имел ввиду crt?


(Сообщение отредактировал KMA 30 янв. 2008 14:40)

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 30 янв. 2008 14:39 | IP
Fedos



Новичок

Да тут ты прав.Нопрога после внесения всех изменений всё ровно не пашет.Если есть слова на 'М' то она просто ни чего не выдаёт.

Всего сообщений: 3 | Присоединился: январь 2008 | Отправлено: 30 янв. 2008 16:14 | IP
KMA



Долгожитель

Как ничего не выдает???!!! Я ее лично сам тестил. Переделай буквы на английский. Ну вот лично сейчас скопировал твой код, поменял одну строку и все заработало. Смотри внимательнее.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 30 янв. 2008 19:28 | IP
Fedos



Новичок

Сделал!!!кому интересно смотрите  

Program f;
var Mas: array[0..6] of string;
     I,Bx: Integer;
begin
     Writeln('vvedite ByzbI');
     For I:=0 to 6 do
      begin
       Write(I+1, ') ');
       Readln( Mas[ i ] );
      end;
     writeln;
     writeln('OtBET:');
     Writeln;

     Bx :=0;
     For I:=0 to 6 do
     If Mas[ i ][1] In ['m','M']  then
      begin
        inc ( Bx);
        Writeln( Bx, ') ', Mas[ i ], ';');
      end;
     readln;
end.

КМА: еще раз повторяю, делай текст своих прог понятным не только себе, но и другим.

(Сообщение отредактировал KMA 30 янв. 2008 19:49)

Всего сообщений: 3 | Присоединился: январь 2008 | Отправлено: 30 янв. 2008 19:39 | IP
milaschka


Новичок

помогите мне пожалуйста!
1 задача.
Даны действительные числа X,Y.Определить,принадлежит ли точка С координатам следующей области:
область внутри круга X*X+Y*Y=1,
но вне круга X*X+Y*Y=0.5*0.5
2 задача.
Пусть х,у-координаты точки U
U=х+у,если (х,у) принадлежит D,
U=х-у,в противном случае область D есть множество точек выше параболы у=х*х,но ниже кривых у=ехр(-х) и у=ехр(х)
Определить U.
3 задача.
Даны действительное число а,натур. число n.Вычислить             а*(а+1)*...*(а+n-1).
4 задача.
Даны натур.число n.Вычислить (-1)1(cтепень)/1/(2*1+1)+...+(-1)n(cтепень)/n/(2n+1).
P.S.там (-1)в степени 1 деленное на 1 и (-1) в степени n деленное на n.
Буду очень благодарна,если вы решите мне эти задачи!!!

Всего сообщений: 4 | Присоединился: февраль 2008 | Отправлено: 5 фев. 2008 20:20 | IP
KMA



Долгожитель

Здесь НЕ РЕШАЮТ, а помогают.

Либо выдаешь свои мысли, либо я удаляю твое сообщение.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 6 фев. 2008 20:31 | 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