Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Люди помогите написать программу!

Автор: ska4ai 3.11.2008 22:55

Уже 2 дня сижу, с массивами ниччего не пойму, как в них вводить буквы. Задача такая: задан список русских фамилий(вместе с именами и отчествами), упорядочить их по алфавиту.
Проверить, и исправить если нужно,написание собственных имён с прописных букв. Заранее всем спасибо!!!

Добавлено через 14 мин.
и ещё дополнение. Я ввожу фамилии с клавы, и сколько их я не знаю. как тут обьявлять массив?

Автор: Archon 3.11.2008 23:20

Используй для хранения данных массив строк (array[n..m] of string). Из задания не понятно, следует ли использовать динамические массивы или обходиться статическими. На случай динамических: http://forum.pascal.net.ru/index.php?showtopic=6730

Автор: ska4ai 3.11.2008 23:27

Это задача по циклам

Автор: Archon 3.11.2008 23:34

Значит ли это, что динамические массивы вы ещё не проходили?

Автор: ska4ai 3.11.2008 23:37

ну видимо. 1 курс только

Автор: Archon 4.11.2008 0:11

Тогда ты не можешь сделать программу для произвольного количества фамилий. Как вариант, создай массив заведомо большим размером, чем тебе понадобится, например "array[1..100] of string;". При вводе фамилий, считай их, и как только ввод закончится (признаком конца ввода можешь сделать пустую строку) сохрани число введённых фамилий. Далее предполагай, что твой массив имеет именно такую длину. Остальные его элементы останутся незадействованными.

Автор: ska4ai 4.11.2008 0:16

а можно это в виде кода всё. мне нужна полностью программа

Автор: feniks25 4.11.2008 0:42

Цитата(ska4ai @ 3.11.2008 19:16) *

а можно это в виде кода всё. мне нужна полностью программа

конечно можно

uses crt;
var
mas:array [1..20]of string[30];
i,x:integer;
count:integer;
st,st2:string[30];
begin
clrscr;
writeln('write family');
count:=0;
repeat
st:='';
readln(st);
count:=count+1;
mas[count]:=st;

for i:=1 to count do
for x:=1 to count do
if mas[x]>mas[i] then begin
st2:=mas[x];
mas[x]:=mas[i];
mas[i]:=st2;
end;

until (st='')or(count=20);

writeln('END');
for i:=1 to count do writeln(mas[i]);

readkey;
end.


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

Я исправил. Lapp


Автор: Archon 4.11.2008 0:52

А написание собственных имён с прописных букв сам сделаешь. Ведь должен же ты и сам что-то сделать =)

Автор: feniks25 4.11.2008 1:00

Цитата(Archon @ 3.11.2008 19:52) *

А написание собственных имён с прописных букв сам сделаешь. Ведь должен же ты и сам что-то сделать =)

smile.gif -правильно понимаешь неча баловать

Автор: Lapp 4.11.2008 10:55

 ! 
ska4ai, приведи название в соответствие с Правилами (п.4) - иначе тема будет закрыта



2 feniks25:
1. Почему ты сортируешь весь массив после ввода каждой строки? для надежности? smile.gif
2. Почему в сортировке стоит полный цикл? Прежде, чем учить других, почитай сам про сортировку: http://forum.pascal.net.ru/index.php?showtopic=3065 .
3. family <> фамилия smile.gif

Автор: feniks25 4.11.2008 20:04

Цитата(Lapp @ 4.11.2008 6:55) *

2 feniks25:
1. Почему ты сортируешь весь массив после ввода каждой строки? для надежности? smile.gif
2. Почему в сортировке стоит полный цикл? Прежде, чем учить других, почитай сам про сортировку: http://forum.pascal.net.ru/index.php?showtopic=3065 .
3. family <> фамилия smile.gif


я хотел, чтобы человек сам хоть немного занялся оптимизацией иначе нет никакого смысла.
я специально сделал явные недостатки, это же в первую очередь надо ему, пусть развивает,
его нароботок я не видел.

А с family<>фамилия я недавно на работе столкнулся, смешной был случай с немцем smile.gif

ЗЫ. а ссылка полезная, основательный материал, спасибо

Автор: Lapp 5.11.2008 5:09

Цитата(feniks25 @ 4.11.2008 17:04) *
я хотел, чтобы человек сам хоть немного занялся оптимизацией иначе нет никакого смысла.
я специально сделал явные недостатки, это же в первую очередь надо ему, пусть развивает,
его нароботок я не видел.

Верно, смысла нет. Но давать явно неверное решение (без намеков на присутствие ошибок) - это все равно, что учить ездить по встречке - вроде и едешь, но..
Короче, будь добр, больше так не делай. Хотя бы пиши, что код содержит ошибки. А если ошибся, то имей мужество признать это.

 ! 
Тема закрывается ввиду невыполнения автором Правил Форума, п.4