PDA

Показать полную графическую версию : Всё о TURBO PASCAL (обсуждение, помощь в написание программ, ошибки, Pascal ABC)


Страниц : 1 [2] 3

Nelson1992
09-02-2010, 16:13
Мне нужна помощь в написании программы к заданию:

1. На языке программирования Pascal реализовать процедуры работы со стеком на последовательном распределении памяти:

- Создание пустого стека

- Добавление элемента на вершину стека

- Удаление элемента с вершины стека

Процедуры, реализующие операции добавления и удаления элемента должны разумным образом обрабатывать ситуации переполнения и нехватки (схемы (2а), (3а)). Стек реализовать, используя одномерный массив и переменную типа integer (указатель на вершину стека).

Т ← Т + 1; если T > M то ПЕРЕПОЛНЕНИЕ, иначе Х[Т] ← Y (2a)

(включить в стек)

если T = 0 то НЕХВАТКА, иначе Y ← X[T]; Т ← Т - 1 (3a)
(исключить из стека)

2. Провести вычислительный эксперимент с полученными процедурами

a) Используя результат задания 1 запрограммировать получение нового текстового файла, в котором все слова во всех предложениях записаны в обратном порядке. В программе установить максимальный размер стека равным 10.

b) Используя результат задания 1 запрограммировать получение нового текстового файла, в котором в котором буквы каждого слова записаны в обратном порядке. В программе установить максимальный размер стека равным 5.

В процессе работы программы должна выводить текущее состояние стека (после каждой операции добавления, извлечения, очистки).

Вот текст который должен содержаться в текстовом файле:

Придется идти ва-банк...
- Ты не вправе слышать его имя!
- Я вправе на все, - сообщает монстр.
И пальцы сжимаются.
Теперь должен произойти выход в реальность. Как следствие
"смертельного" воздействия. Иначе - мозг может вообразить самый настоящий
болевой шок, со всеми последствиями.
Только самоубийца отключит предохранители дип-программы.
Или дайвер.
Мое изуродованное тело валяется на ладони монстра. Череп расплющен,
один глаз смотрит в пыльное жаркое небо, другой - в каменный ноготь. Ифрит
громко, удовлетворенно хохочет, потом кричит:
- Ты, пришедший в облике волка, запомни его судьбу!
Ага, вот как он определил язык... слышал наши разговоры. Однако ему
не хватило "ума" понять, с кем имеет дело...
Монстр снова каменеет. Я выжидаю еще секунду, потом встаю. Тело
медленно собирается воедино. Нормальный пользователь дип-технологии сейчас
очнулся бы в реальности, перед укоризненно верещащим компьютером.
Учитывает ли сторожевая программа "Аль-Кабара" существование
дайверов?
Монстр неподвижен. Я мертв, давно мертв... Осторожно ступаю на
волосяной мост...
- Кто ты?

stalker-ust
27-04-2010, 09:57
Ребята,помогите в написании программу в множестве!!
а то препод сожрет всю группу....

Путем ввода целых чисел создать множество. Определить, входят ли в данное множество числа, введенные с клавиатуры.

заранее спасибо....

Drongo
27-04-2010, 10:36
stalker-ust, Если напишу на С++ перевести на Pascal сможете? Есть кому?

Вообще логика этой программы такая(как я понял):

1. Запрашиваем ввод числа, которое создаст массив нужного нам размера (размер нашего множества)
2. Заполняем наше множество, запрашиваем у пользователя ввод чисел. Вводим столько чисел, какой размер имеет массив.
3. После заполнения, запрашиваем у пользователя ввод любого целого числа.
4. Проверяем в цикле с массивом, если в массиве нет введённого числа - значит число не входит, иначе - входит.

stalker-ust
29-04-2010, 12:04
давай))

Drongo
29-04-2010, 16:10
stalker-ust, Вот. Надеюсь поможет. Проверку того что число не входит в множество, я не делал.

#include <iostream>
using namespace std;

int main()
{
int size; // Размер массива
int *array; // Наш динамический массив
int num, // Вводимое числ для проверки в массиве
z;

// Запрашиваем ввод размера массива
cout << " Введите размер массива = ";
cin >> size;

// Проверяем, пока введённое число меньше 1
// предлагать ввод правильного значения
while(size < 1){
cout << " Введите размер массива = ";
cin >> size;
}

// Создаём массив
array = new int[size];

// Заполняем массив, вводом чисел с клавиатуры
for(int i = 0; i < size; i++){
cout << "Введите значение в массив, элемент array[" << i << "] = ";
cin >> array[i];
}

// Предлагаем пользователю ввести любое число
// Его мы будем проверять на наличие присутствующих
// чисел в массиве.
cout << "Введите любое целое число = ";
cin >> num;

// Проверяем, если ведённое число есть в массиве
// Выводим число и индекс массива
for(int j = 0; j < size; j++)
if(array[j] == num)
cout << "Введённое число: " << num << " находится в массиве array[" << j << "]" << endl;

delete [] array; // Освобождаем память

cin >> z;
return 0;
}


P.S. Результат перевода на Pascal жду в этой теме. :)

pasha2009k
12-05-2010, 10:05
азное - Всё о TURBO PASCAL (обсуждение, помо


Среда програмирования: ABS Pascal

Задача: Пусть задано 10 русских имён. Проверьте все ли имена написаны с прописной буквы, если нет,то исправте ситуацию.

Если можно то задачку в лс!
Заранее спасибо.

Drongo
12-05-2010, 13:24
Если можно то задачку в лс!»и кофе тоже подать?

Задача для первоклассника. Проверяете первую букву имени и если она в нижнем регистре, то переводите её в верхний. В чём трудность-то?

Nayan
16-07-2010, 21:15
Пожалста,Напишите программу,которая считывает данные из текстового файла,содержащего одномерный массив произвольной длины,отображает данные в виде графика,вычисляет количество элементов в массиве,среднее значение, среднее квадратичн.отклонение и выводит полученн.результаты на экран. Срочно надо.

Glareone
17-07-2010, 03:50
Пожалста,Напишите программу,которая считывает данные из текстового файла,содержащего одномерный массив произвольной длины,отображает данные в виде графика,вычисляет количество элементов в массиве,среднее значение, среднее квадратичн.отклонение и выводит полученн.результаты на экран. Срочно надо. »
на каком языке надо написать?ничего особенного в задаче нету.

1)посимвольное чтение из файла до пробела,преобразование из цифр в число.
2) перевыделение памяти для массива, добавление нового числа (вместо перевыделения можно подсчитать общее кол-во элементов в файле с помощью цикла while(!eof) и уже выделить необходимое кол-во )
3) график можно нарисовать с помощью символов( * - | ) не прибегая к использованию регистров или graph.h
4) остальные задачи-математические на 2 строки.

Nayan
17-07-2010, 07:13
Прога на паскале,мне поставили срок до завтра.Выручите? Это при устройстве на работу меня решили проверить,а я подзабыл уже,2года назад отучился.

Mercenary13
06-12-2010, 09:34
Помогите решить задачу, буду очень благодарен.
Сведения об ученике состоят из его имени и фамилии и названия класса (года обучения и буквы), в котором он учится. Дан типизированный файл f, содержащий сведения об учениках школы:
а) выяснить, имеются ли однофамильцы в каких-либо параллельных классах;
б) выяснить, имеются ли однофамильцы в каком-нибудь классе;
в) выяснить, имеются ли однофамильцы в каких-либо параллельных классах у которых совпадает и имя и фамилия;
г) выяснить, имеются ли однофамильцы в каком-нибудь классе, у которых совпадает и имя и фамилия;
д) выяснить, в каких классах насчитывается более 35 учащихся;

love_molly
10-04-2011, 23:06
кто-нибудь,помогите с процедурой
задание №6

http://cs5299.vkontakte.ru/u2468438/110099644/z_14c689e1.jpg

lxa85
11-04-2011, 08:36
love_molly, ну и пиши прямым текстом, что тебя смущает?
Пересчитать все значения по строкам, пересчитать все строки, каждый элемент возвести в квадрат и просуммировать. Из полученного значения вычислить корень. Где сложность?

Lksen
19-12-2011, 08:54
Привет, ребят. мне надо зачет получать, а я не шарю в программировании вообще. Помогите решить задачи:
1http://puu.sh/aZlK
2http://puu.sh/aZm2
3http://puu.sh/aZm7
4http://puu.sh/aZmj
5http://puu.sh/aZmm
6http://puu.sh/aZmt
Заранее спасибо

lxa85
19-12-2011, 09:16
Lksen,
1. Нужны решения в псевдокоде. Ну или хотя бы ручкой на листе бумаги.
2. тригонометрические функции считать в градусах или в радианах?
3. 6ое задание, как самое интересное - твои мысли, наш код. Не иначе.

Lksen
19-12-2011, 10:03
1. Нужны решения в псевдокоде. Ну или хотя бы ручкой на листе бумаги. »
В смысле "псевдокоде"? уже решенное или как?
2. тригонометрические функции считать в градусах или в радианах? »
Скорей всего в градусах
3. 6ое задание, как самое интересное - твои мысли, наш код. Не иначе. »
Не понял. Это задание я списал с книжки, дословно оно звучит вот так:
1.56
Пусть x1, x2 - действительные корни квадратного уравнения. Вычислить коэфицент этого уравнения.
1.57
Решить 1.56 в случае комплексно сопряженных корней.
Скажите поподробней, что я должен сделать, а то ничего не понимаю. Вылететь с первого же курса как то...

lxa85
19-12-2011, 12:11
Lksen, В смысле "псевдокоде"? уже решенное или как? »
конечно решенное!
Вы сдаете собственные измышления, а не наши коллективные. Соотв. вы думаете "Как" решать задачу, а мы лишь помогаем с реализацией.
Скорей всего в градусах »
ЕМНИП Pascal по умолчанию работает с радианами. Напомни плиз, как из этих в те перевести?
Скажите поподробней, что я должен сделать »
Про задание я понял, к формулировкам претензий нет. Просто через две точки корней уравнения можно провести бесконечное множество парабол. Какую из них выбрать?

Lksen
19-12-2011, 13:41
Соотв. вы думаете "Как" решать задачу, а мы лишь помогаем с реализацией »
У меня в первые дни был как то "прорыв", я мог решать задачки по паскалю, но потом пошло введение в проф деятельность, а там нужно решать физические (физика) и геометрические (геометрия) задачи на паскале, а в школе у меня были двойки за эти предметы..
1)
program pr1;
const a=0.5;
var b,x,u,f:real;
Begin
write('Введите значение b,x:');
readln(b,x);
U:=((a*a)*x+exp(-x*ln(e)*cps*b*x))/((b*x-exp(-x*ln(e)*cos*b*x+1));
f:=exp(2*x*ln(e)*ln(a+x)-exp(3*x*ln(b)*ln(b-x);
writeln ('U=',U:5:3,' f=',f:5:3);
readln;
End.
И получились у меня
U=-0,082 и f=-2,905
Это была первая работа, которую надо было сдать, делал ещё когда этот "прорыв" был, а после уже потенциал пропал...
Как делать остальные даже догадок нет, не то, что "что-то решенное". :(
ЕМНИП Pascal по умолчанию работает с радианами. Напомни плиз, как из этих в те перевести? »
На просторах интернета нашел следующее, может поможет..
uses crt;
var Rd,Gr,G,M,S:real;GMS:string;
begin
clrscr;
write('Rd=');readln(Rd);
Gr:=Rd*180/pi;
G:=int(Gr);
M:=int(frac(Gr)*60);
S:=frac(frac(Gr)*60);
Write(Rd:4:2,'rad= ',G:3:0,'gr ',M:3:0,'min ',S:3:1,'sec');
readln
end.
Про задание я понял, к формулировкам претензий нет. Просто через две точки корней уравнения можно провести бесконечное множество парабол. Какую из них выбрать? »
Не знаю. Я вообще мало что понимаю в этом языке и что нужно. Там я два задания переписал из учебника дословно, ничего помимо этого там не написано.

Lksen
19-12-2011, 16:29
Формулы не могу сделать
2)
program pr2;
var z,a:real;
i,n:integer;
Begin
writeln('Введите а,n:');
readln(a,n);
\\Здесь формулы//
writeln('i=,.i,' z=',z:5:3);
end;
readln;
end.

Lksen
20-12-2011, 13:37
Помогите пожалуйста решить, мне работы уже завтра сдавать нужно, ибо - незачет :(




© OSzone.net 2001-2012