Другое > Hard'n'Soft
Вспоминаем Turbo Pascal и решаем задачи на нём
<< < (3/15) > >>
Fly:

--- Цитата: gepar ---Fly, если не лень и есть время напиши пожалуйста свой вариант , ато что-то я не понял как с таким алгоритмом оно будет работать ,а вернее правильно работать , код частично скопируй у меня для экономии времени
--- Конец цитаты ---
Для твоей программы будет выглядеть так:

--- Код: ---program proga107;
uses crt;
var
x:byte;
y:real;
Begin
     For x:=1*4 to 10*4 do  {или просто For x:=4 to 40 do}
     Begin
     y:=(sqr(x/4))-(16*x/4)+32;
     write ('x=',x/4,' y=',y,' ');
     writeln;
     end;
end.
--- Конец кода ---
PS. Лучше всё-таки while используй.:)

Добавлено позже:
PPS. Перед end точка с запятой не требуется.
gepar:
AnXIouS, усёк , спасибо что разъяснил .
Теперь застрял вот на таком вот упражнении :
Вычислить сумму ряда s=cos(x)+ cos(x)*cos(x)+...+cos(x)*cos(x)*...*cos(x) , для x и n  введённых с клавиатуры .
+...............n...............+ - уже решено  :)

Добавлено позже:

--- Цитата: Fly ---PPS. Перед end точка с запятой не требуется.
--- Конец цитаты ---
Ты об этом :

--- Цитата: Fly ---   writeln;
   end;
end.
--- Конец цитаты ---
?
Я знаю , привычка просто  :)
Fly:
Ещё раз внимательно посмотрел на программу. Много лишнего нашёл. Хватит этого:

--- Код: ---program proga107;
var
x:byte;
Begin
     For x:=4 to 40 do
     writeln ('x=',x/4,' y=',sqr(x/4)-16*x/4+32)
end.
--- Конец кода ---
gepar:
P.S

--- Цитата: ---program proga107;
uses crt;
var
x:byte;
y:real;
Begin
     For x:=1*4 to 10*4 do  {или просто For x:=4 to 40 do}
     Begin
     y:=(sqr(x/4))-(16*x/4)+32;
     write ('x=',x/4,' y=',y,' ');
     writeln;
     end;
end.
--- Конец цитаты ---
Запутанно , но тоже вариант  :)

Добавлено позже:
И ещё вот такой вопрос - это что за обозначение : 'n!' , где n - число , его я что-то тоже часто стал встречать в списке задач .
aUruM:

--- Цитата: gepar ---И ещё вот такой вопрос - это что за обозначение : 'n!' , где n - число , его я что-то тоже часто стал встречать в списке задач .
--- Конец цитаты ---
Это факториал. По определению,
0!=1,
n!=n*(n-1)! для n>0.
gepar:

--- Цитата: aUruM ---Это факториал. По определению,0!=1,n!=n*(n-1)! для n>0.
--- Конец цитаты ---
Понял , пойду в вики почитаю подробнее .
gepar:
А кто-то может обьяснить работу random в паскале , желательно с примерами и чтобы попонятнее и поподробнее :) Ну или ссылку на страницу где это всё есть , в гугле что-то нашёл только скупую информацию насчёт random'а .
УльтраБлокС:
Перед обращением к Random надо вызвать Randomize;
gepar:
УльтраБлокС, ну это я уже понял , методом тыка выяснил что нужно писать random(по какое число будет генерится с 0) - сколько нужно тобишь random(100)-50 будут генерироваться числа от -51 до 50 , если я гдето неправ то поправьте .
И ещё тут возник такой вопрос можно ли зная что в массиве с 20 ячеек есть где-то цифра 5 узнать где она тобишь можно ли както узнать а в какой же ячейке эта цифра храниться и вывести номер этой ячейки ?
УльтраБлокС:
Random(100) даёт числа от 0 до 99


--- Цитата: gepar от 22 Ноябрь 2009, 19:07:40 ---И ещё тут возник такой вопрос можно ли зная что в массиве с 20 ячеек есть где-то цифра 5 узнать где она тобишь можно ли както узнать а в какой же ячейке эта цифра храниться и вывести номер этой ячейки ?

--- Конец цитаты ---


--- Код: ---var
I: Integer;
I1: Array [0..20] of Integer;
begin
for i := 0 to 20 do if I1[i] = 5 then WriteLn(i);
end.

--- Конец кода ---
gepar:
И ещё один вопрос как от новичка : можно ли нескольким константам сразу задать значение 0 , например у меня есть a,b,c и d и все типу real и вот я хочу им всем сразу задать значение 0 , мого намёка ввиде a,b,c,d:=0; паскаль не понял  :) Тогда как нужно было сразу задавать им всем значение 0 , да и реально ли это вообще сделать ?

Добавлено позже:
УльтраБлокС, фенкс , сейчас попробую переделать задание ещё таким способом ато я там схитровал немного при выполнении , результат то конечно получен правильный , но я  хочу знать все нюансы .
topos84:

--- Цитата: gepar ---a,b,c,d:=0; паскаль не понял
--- Конец цитаты ---
Столбиком присвой.
gepar:

--- Цитата: topos84 ---Столбиком присвой.
--- Конец цитаты ---
Пример ?
topos84:
a:= 0;
b:= 0;
c:= 0;
d:= 0;


--- Цитата: gepar ---намёка ввиде a,b,c,d:=0; паскаль не понял
--- Конец цитаты ---
Он не очень умен, дедушка Паскаль-то, потому не любит, когда кто-то пытается облегчить себе работу с ним при помощи всяких хитростей. ;)
gepar:
И ещё вопросик : можно както определить наибольший или наименьший элемент массива ?Ну кроме способа сравнивания типа

if m>a then a:=m;
Возможно плохо обьяснил , ну да я думаю вы поняли  :)
?

Добавлено позже:
topos84,вообщем как я понял сходу нельзя сразу всем , нужно по очереди .Спс за ответ .
AnXIouS:
В паскале никак.
topos84:
gepar, вот здесь можно найти полезную инфу про Паскаль (краткие и не очень метод. рекомендации и учебники, некоторые примеры решения задач и пр.):
http://tp7.info/

Добавлено позже:

--- Цитата: gepar ---И ещё вопросик : можно както определить наибольший или наименьший элемент массива ?Ну кроме способа сравнивания типа
--- Конец цитаты ---
Задачи на работу с массивами в вузовских курсах программирования (до динамического программирования/объектно-ориентированного) - одни из самых трудных и для большинства из них есть стандартные решения, так что ничего нового сам не выдумаешь, что было бы легче/удобнее этих.
gepar:
topos84, да книг уже накачал  я достаточно,  просто зачастую перечитав страницы относящиеся например к операторам постусловия  кое-что не совсем понимаешь и приходиться спрашивать здесь на форуме дабы местные специалисты  по паскалю объяснили некоторые нюансы за что всем отписавшимся в этой теме ещё раз спасибо  .

Добавлено позже:
Застрял на вот такой вот задачке :
Напишите программу , которая вводит с клавиатуры 10 реальных чисел , и организовывает их хранение в массиве. После этого массив пересортировывается по закону:первый элемент меняеться с последним , второй с предпоследним и т.д ...
Начало решения :
program proga184;
uses crt;
var
m:array[1..10] of real;
i:integer;
Begin
     for i:=1 to 10 do
     Begin
          writeln('Enter m[',i,']');
          read(m);
     end;
Как сделать правильно дальше я что-то догадаться не могу , ну разве что могу написать так называемый "индусский код" поназначав элементы массива 10 переменным , а потом поназначать значения переменных нужным элементам массива , но это будет долго и точно уж неправильно  :)
topos84:
gepar, лови:


--- Цитата ---program proga184;
uses crt;
var
m:array[1..10] of real;
r: real;
n,i,j,k:integer;
Begin
  clrscr;
  for i:=1 to 10 do
    begin
      write('Enter m[',i,']=');
      read(m);
      writeln;
    end;
  writeln('Your array is:');
  for n:=1 to 10 do write(m[n]:5:3,'  ');
  writeln;
  for j:=1 to 4 do
    begin
      r:=m[j];
      m[j]:=m[11-j];
      m[11-j]:=r;
    end;
  writeln;
  writeln('Symmetrical one:');
  for k:=1 to 10 do write(m[k]:5:3,'  ');
  writeln;
  writeln('Press any button');
  readln;
  readln;
end.
--- Конец цитаты ---
gepar:
topos84, что-то сложное в итоге получилось , сейчас буду пошагово разбираться .
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии