Убедительная просьба ко всем, кто выкладывает исходники: 1. Обязательно пользуйтесь тэгом code (иначе очень трудно читать)
2. Старайтесь делать отступы
Если вы хотите чтобы вам помогли в написании программы, внятно излагайте задание!
Прежде чем задать вопрос, воспользуйтесь учебником
Возможно, что нужная вам программа уже написана, поэтому советую просмотреть список здесь и здесь Отредактировано куратором: Lord_of_Darkness. Дата: 07.07.2006 19:36
Заменить в строке подстроку PC на EVM. Как сделать чтобы замена работала, если встречается насколько раз заменяемая подстрока, а у меня заменяется только при первом появлении PC? Подскажите пожалуйста, хотя бы для одного из вариантов.
Вариант 1 Program Zadanie;
uses crt;
var st:string;
i:integer;
begin
clrscr;
readln(st);
i:=pos('PC',st);
if i<>0 then begin
delete(st,i,2);
insert('EVM',st,i);
end;
writeln(st);
end.
Вариант 2 uses crt;
var str:String; L,i:integer;
begin
clrscr;
writeln('Введите текст');
readln(str);
L:=length(str);
for i:=1 to L do
if (str[i]='PC') then Write ('EVM') else
write (Str[i]);
writeln
end.
Я вот решил научиться программировать (чисто новичок). Решил начать с Pascal. Скачал компилятор Free Pascal 2.2.2. А там всё устаревшее. 2005 год! Где скачать нормальный компилятор?
Заранее спасибо!
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
IQDDD писал(а):
Скачал компилятор Free Pascal 2.2.2. А там всё устаревшее. 2005 год!
что значит "все"? Паскаль был создан в 1970 году. К тому же, Free Pascal это не компилятор, а IDE. Вобщем, все это я говорю к тому, что незачем искать что-то другое, если уже есть закаченный Free Pascal.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
program Zadanie; uses crt; var st:string; i:integer; flag:boolean;
begin clrscr; readln(st); flag=false; while(flag=false) begin i:=pos('PC',st); if i<>0 then begin delete(st,i,2); insert('EVM',st,i); end else flag=true; end; writeln(st); end.
Или так:
Код:
uses crt; var str:String; L,i:integer; begin clrscr; writeln('Введите текст'); readln(str); L:=length(str); for i:=1 to L-1 do if ((str[i]='P') AND str([i+1]='C')) then Write ('EVM') else begin write (Str[i]); write (Str[i+1]); end; writeln;
Учитель дал задание написать программу, которая загадывает число случайное (используя random) и юзер должен угадать его. Он при мне показывал как это делать, всё работало. Дома я делаю - выдаёт ошибку (см. дальше).
Вот текст программы:
Код:
program rand; uses crt;
var a, b:integer;
begin randomize; a := random(20)+1; clrscr; writeln('The programm will choose one number between 0 and 20.'); writeln('You should guess it. Let us start.'); write('Input number here: '); readln(b); if b = a then begin write('Congratulations! You have guessed it! It is ', a); end else begin write('Sadly, you have input wrong number. Try again next time!'); end;
end.
Пробовал ставить это:
Код:
randomize; a := random(20)+1;
чуть ниже, естественно это не помогло... ошибку выдаёт вот такую:
и ставит курсор после слова random перед скобками с двадцаткой. Если скобки убрать, то выдаёт тоже самое. Randomize тоже дело не поправляет... Бьюсь уже несколько дней. Где ошибка?
Member
Статус: Не в сети Регистрация: 16.08.2007 Откуда: Москва
Извиняюсь за дурацкий вопрос, а код случайно не копипастом вне Паскаля в .pas-файл вставлялся? В родимой Дельфи такой прием к таким порой любопытным ошибкам приводит... А все из-за каких-то неправильных line break'ов.
_________________ LinX — маленький GUI к великому Linpack'у: http://people.overclockers.ru/Dualist/12527/Linpack_GUI_LinX/
помогите решить пару задачек пожалуйста:
На вход программе подается последовательность цифр. ВВод этих символов заканчивается точкой (другие символы, отличные от "." и цифр "0"..."9", во входных данных отсутствуют, в программе на языке бейсик символы можно вводить по одному в строке, пока не будет введена точка). Требуется написать как можно более эффективную программу , которая будет печатать цифры, встречающиеся во входной последовательности, в порядке уменьшения частоты их встречаемости. Каждая цифра при этом должна распечатываться один раз.
Если какие-то цифры встречаются одинаколвое число раз, то они выводятся по возрастанию. Например, пусть на вход подаются следующие символы: 1232432. Программа должна вывести: 2314.
№2.
На вход программы подаются сведения о номерах школ учащихся, участвующих в олимпиаде. В первой строке сообщается количество учащихся N, каждая из следующих N строк имеет формат: <фамилия><инициалы><номер школы>, где <фамилия>- строка, состоящая не более чем из 20 символов, <инициалы>- строка, состоящая из 4 символов (буква, точка, буква, точка), <номер школы>- не более чем двузначный номер. <фамилия> и <инициалы>, а также <инициалы> и <номер школы> разделены одним пробелом. Пример входной строки: Иванов П.С. 57
Требуется написать как можно белее эффективную программу, которая будет выводить на экран информацию, из каких школ было меньше всего участников олимпиады ( но из этих школ был хотя бы один участник).
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
Hynix Microsoft Virtual PC + Windows 98 либо Delphi -> Win32 console application
MorphoS меняйте IDE полностью. Не исключено, что кривой дистрибутив. Или откройте random.pas и посмотрите, что там такое на 8-й строке.
Ceres писал(а):
в программе на языке бейсик
а паскаль тут причем?
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Помогите пожалуйста в решении задачи. Очень нужно студенту помочь, а времени нет разбираться в Паскале. Заранее благодарен.
1. Протабулировать функцию вида f(x)=x/q2 exp (-x2/2q2), x>=0, где 0<=x<=xmax, x - независимая переменная, q - постоянная.
p.s. маленькая двойка - квадрат, >= больше или равно. Заранее извеняюсь за дилетантство.
2. Разработать программу для расчёта № чисел по формуле y=y1*y2, где y1 = q1*квадратный корень(-2*ln*x1),
y2 = q2*квадратный корень(-2*ln*x2), x1;x2 - равномерно распределённые случайные числа в интервале (0;1)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения