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

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

Guest



Новичок

-----> люди добрые помогите с задачкой
дан вектор Х, составленный из 8 вещественных чисел.
Требуется домножить каждый элемент Х на квадрат наименьшего члена вектора, если х(индекс i) >= 0, и домножить на квадрат наибольшего, если х(индекс i) < 0
очень благодарна заранее

Всего сообщений: Нет | Присоединился: Never | Отправлено: 20 дек. 2007 23:18 | IP
LUX



Новичок

KMA, я сделал так, но работает неправильно.
Где не так? не подскажешь, please:
Code Sample:
Найти в произвольном файле самый редко встречающийся байт (byte) 



program Project;
  {$APPTYPE CONSOLE}
uses
 SysUtils;

VAR f: file;
   buf, sr, res:word;
   l, t, i, k, p:integer;


begin
 { TODO -oUser -cConsole Main : Insert code here }
AssignFile (f, 'date.dat');
reSet (f, 1);
t:=fileSize(f);

seek (f, 0);
blockRead (f, res, 1);
p:=0;  l:=0;
while eof(f)=false do
begin
seek (f, p);
blockread(f, sr, 1);
if sr=res then l:=l+1;
inc(p);
end;
writeln (l);

for i:=1 to t-1 do
begin
k:=0; p:=0;
seek (f,i);
blockread(f, buf,1);
  while eof(f)=false do
  begin
  seek (f,p);
  blockread(f, sr, 1);
    if sr=buf then k:=k+1;
  inc(p);
  end;
     if k<l then
     begin
     l:=k;
     res:=buf;
     end;
end;

writeln (k, ' ' ,res);
Readln;
end.

Прога без коментов, но думаю тут одни профи и они без проблем разберуться


(Сообщение отредактировал LUX 22 дек. 2007 17:06)


(Сообщение отредактировал LUX 22 дек. 2007 17:07)

Всего сообщений: 4 | Присоединился: декабрь 2007 | Отправлено: 22 дек. 2007 18:05 | IP
KMA



Долгожитель


Прога без коментов, но думаю тут одни профи и они без проблем разберуться


Профи как раз и отличаются тем, что в своих программах ставят комментарии. Сама программа начинает писаться с комментария, вот собственно почему у многих и проблемы с программированием - не умеют организовать структуру программы.

У тебя так же проблема, алгоритма решения задачи нет, а он такой:
{==========получаем даные======================}
{открываем файл и настраиваем его на файловую переменную}

{копируем байты файла в массив}

{============================================}

{============обрабатываем данные===============}
{сортируем массив}
{**ищем значение которое встречается меньшее число раз**}

{т. к. массив отсортирован, то значения имеют лишь соседи}
{если у элемента соседи не равны ему, то можно смело его выводить, он точно самый редкий =)}
{если все же соседи есть то считаем сколько таких одинаковых, находим соседей таких элементов с меньшим числом}
{***************************************}
{============================================}

{==========выводим данные ===================}
{тупо выводим данные}
{=========================================}

Теперь давай реализовывай этот алгоритм с комментариями.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 22 дек. 2007 21:37 | IP
Guest



Новичок

Ребята помогите!!! У меня задача на циклы!!! Я составила программу, но очень сомневаюсь, что она правильная! Может, напутала, что с присвоением конечного и начального значения??? Помогите разобраться….
Задание Составить программу расчета значения функции z=f(x,y) с использованием операторов цикла. Значения переменных x и y изменяются соответственно от  xn  до xk с шагом hx, и от yn  до yk  с шагом hy и вводятся с клавиатуры Указанные переменные относятся к вещественному типу. Вывести на экран таблицу значений x,y,z.
Z=3x2+10y/sqrt|ey-2.5|
Внешний repeat  внутренний while

program three;
uses crt;
var x,xn,xk,hx,y,yn,yk,hy,z:real;
   begin clrscr;
writeln (’Input xn,xk,hx,yn,yk,hy’);
read(xn,xk,hx,yn,yk,hy);
x:=xn;
y:=yn;
         repeat
                      while (y<=yk) do begin
          z:= (3*sqr(x)+exp(y*ln(10)))/(sqrt(abs(exp(y)-2.5)));
          writeln(‘x=’,x:0:2,’ y=’,y:0:2,’ z=’,z:0:2);
          y:=y+hy;
                                                      end;
           y:=yn;
           x:=x+hx;
   until x>=xk;
readkey;
   end.

Всего сообщений: Нет | Присоединился: Never | Отправлено: 25 дек. 2007 13:50 | IP
Guest



Новичок

Сложить процедуру тарификации телефонных звонков.Каждая минута стоит 6 копеек и еще 20% ПДВ!

Всего сообщений: Нет | Присоединился: Never | Отправлено: 25 дек. 2007 22:24 | IP
KMA



Долгожитель


Задание Составить программу расчета значения функции z=f(x,y) с использованием операторов цикла. Значения переменных x и y изменяются соответственно от  xn  до xk с шагом hx, и от yn  до yk  с шагом hy и вводятся с клавиатуры Указанные переменные относятся к вещественному типу. Вывести на экран таблицу значений x,y,z.


Так-то у тебя программа рабочая и понятная. Где ошибки? Возможно если только в кодировании формулы. Либо ты не умеешь писать формулы на форумах, либо на Паскале, но могу сказать одно здесь нет соответствия. Во всех остальных отношениях все четко, понятно, логично.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 26 дек. 2007 2:11 | IP
Guest



Новичок

Умоляю помогите исправить задачку по паскалю О_о

Условие >>> Подсчитать число точек, находящихся внутри круга радиусом R с центром в начале координат. Координаты задыны массивами x(8) и y(8).

я вот кое как смог набрать решение, но тут чувствую есть ошибки... помогите пжалста с исправлением

Program rgr3;
Uses crt;
Type matr=array[1..8,1..8] of real
Var x,y:matr;
     I,j,r:integer;
    Kx,ky:integer;
Begin
   Clrscr
   K:=0;
   For i:=1 to 8 do
    For j:=1 to 8 do
      If sqrt (x[I,j]*x[I,j]+y[I,j]*y[I,j])<=r then
           K:k+1;
   Writeln (‘input matr x’);
   For i:=1 to 8 do
    For j:=1 to 8 do
      Read (x[I,j]);
  Writeln (‘input matr y’);
  For i:=1 to 8 do
   For j:=1 to 8 do
  Read (y[I,j]);
  Writeln;
  Writeln (‘chisla’);
  Writeln (k[I,j]:2:2);
   Readkey
End.

[не будешь форматировать текст, никто твои задачи читать не будет, на первый раз я отредактировал: КМА]


(Сообщение отредактировал KMA 27 дек. 2007 0:21)

Всего сообщений: Нет | Присоединился: Never | Отправлено: 26 дек. 2007 16:00 | IP
KMA



Долгожитель

Тебе же сказано, что это вектора, поэтому и представляй как вектора:

Code Sample:
 
const n=8;
Type vector: array [1..n];
VAR x, y: vector



Далее тебе же вначале надо задать эти вектора, поэтому:

Code Sample:
 
for i:=1 to n do
 begin
   write ('Введите через пробел координаты точки ', i, ':');
   read (x[ i ], y[ i ]);
 end;



Ну и под конец посчитать количество точек, попавших в окружность радиуса r (при этом радиус нужно либо забить в константы, либо запросить пользователя).
Code Sample:
 
k:=0;
for i:=1 to n do
  if (x[ i ]*x[ i ]+y[ i ]*y[ i ])<=r*r
     then k:=k+1;



С учетом всего этого попробуй написать программу.

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



Новичок

с учётом замечаний + я зыбыл добавить в условие что задачу надо решать с помощью подпрограмм, получилось вот что::::

program abc2;
uses crt;
type vect = array[1..8] of real;
var x,y:vect;
    kx,ky:integer
procedure ab(var x:vect; n:integer);
var i:integer;
begin
     k:=0;      
       for i:=1 to 8 do
          if (x[ i ]*x[ i ]+y[ i ]*y[ i ])<=r*r
       then k:=k+1;
end;


begin
clrscr;    
     writeln ('input vect i');
     ab (x,8);      
     readkey;
end.


(Сообщение отредактировал KMA 28 дек. 2007 15:35)

Всего сообщений: Нет | Присоединился: Never | Отправлено: 27 дек. 2007 22:16 | IP
KMA



Долгожитель

Здорово, а у меня тупой вопрос: вектора сами задавать будем? Плюсом, зачем ты используешь n, если больше нигде им не пользуешься? Поменяй на k

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 28 дек. 2007 15:38 | 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