| Другое > 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, что-то сложное в итоге получилось , сейчас буду пошагово разбираться . |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |