Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
симфония
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 13
#1

программа для вычисления числа имени на делфи - Delphi

27.04.2011, 18:37. Просмотров 1644. Ответов 10
Метки нет (Все метки)

как можно сделать так чтобы программа обрабатывала числа?мне надо сделать так чтобы она определила соответствие с буквами и сложила эти числа.если еще проще то программа для вычисления числа имени на делфи(((((((помогите плиз
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2011, 18:37
Я подобрал для вас темы с готовыми решениями и ответами на вопрос программа для вычисления числа имени на делфи (Delphi):

программа для рисования блок-схем процедур из делфи
программа для рисования блок-схем процедур из делфи. кто нить знает где можно...

Передать в делфи для oraquery параметр, в качестве имени таблицы
Запрос: select * from :own.owners where owneruid=0 передаю параметр...

Программа для делфи
Написать программу которая изменяет характеристики шрифта и цвета формы при...

Программа для графических построений в Делфи
Нужна программа,в которой можно построить окружность от руки(не надо вводить...

Изменение имени программы в делфи
Интересует как менять имя программы в процесах не имя формы меняймое через...

Программа для вычисления давления
Помогите пожалуйста написать программу по сжатию нефти при опускании на...

10
magirus
27.04.2011, 18:40
  #2
 Комментарий модератора 
учитесь сразу называть темы информативно
0
симфония
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 13
27.04.2011, 18:43  [ТС] #3
сорри..
0
Jazon_deenAlt
4111 / 985 / 191
Регистрация: 09.04.2009
Сообщений: 4,226
27.04.2011, 18:50 #4
ничего непонятно... обьясните как имбицылу типа "я так кнопочками тыц-тыц-тыц *тут вставте что именно натыцкали* нажымаю там то, а мне на ето вжыыык и такое-то... а если я натыцкаю не так а так то мне на ето бламб и воттаквот..." чем детальнее и информативнее тем быстрее и большый шанс на успех
0
симфония
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 13
28.04.2011, 20:34  [ТС] #5
мне дана только информация о числах.нумерология.и мне по этой теме надо составить программу в которую пользователь сможет забить своё имя а программа выдаст число этого имени и краткую информацию(((как мне сделать так чтоб каждой букве присваивалась цифра и при вводе имени шла обработка этих цифр и их сложение

Добавлено через 38 секунд
0
d0lmat
28 / 28 / 4
Регистрация: 28.04.2011
Сообщений: 79
29.04.2011, 09:54 #6
Привет!

Ну тут без массивов не обойтись.
Сделай два массива: один с буквами, второй с цифрами соответствующими буквам первого массива.
Например: в первом массиве первый элемент буква "А", во втором массиве первый элемент число 32, которое заложено для буквы "А".
Дальше при разборе имени ты смотришь в какой позиции стоит буква и соответственно по этой позиции берешь число.

Ну как то так
0
симфония
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 13
30.04.2011, 11:06  [ТС] #7
меня эти массивы приследуют(((((ненавижу.спасибочки

Добавлено через 6 минут
теперь ток понять бы как эт прописать правильнолегче когда в реале объясняютпойду клаву разбирать
0
симфония
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 13
01.06.2011, 16:58  [ТС] #8
помогите пожалуйст..сделала программу а она или виснет или не совсем правильно работает.не знаю почему.программа должна вычислить число введенного имени и дать инфу в соответствии с числом.вот программа:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Button1: TButton;
Label2: TLabel;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

const m: array [0..32] of string = ('а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь' ,'э','ю','я');
m1: array [0..32] of integer = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33);
m2: array [0..8] of string = ('Само по себе число имени 1 не способно приносить большой успех, но если ему помогает число судьбы 1, приносит большую пользу- известность, сотрудничество, славу и внимание. легко добиться прогресса во всех областях.',
'Число приносит изящество и молодость. Его обладатели часто испытывают перемены в своей жизни, может дарить успех в таких областях, как импорт, экспорт и торговля лекарствами.',
'Хорошее число имени, приносит известность. Символизирует талант, разносторонность и веселость, указывает на науку, мир искусства и спортивную жизнь. Эти люди тверды, верны, организованны и умеренны.',
'Не является хорошим числом имени. "Четверки" практичны, упорядоченны, лояльны, терпеливы и экономны, смелы, честны и имеют высокие критерии. Иногда превращаются в трудоголиков в ущерб семье и здоровью.',
'Хорошее число имени. Делает своих обладателей прогрессивными, общительными и живыми, дарует им популярность. Число 5 указывает на духовную свободу и независимость действий. Любят путешествия, приключения.',
'Наиболее подходит поэтам, художникам, танцорам и музыкантам. Это числдо имени заставляет любить сотрудничество: они становятся добрыми, симпатичными, гостеприимными, милосердными, эмоциональными и непостоянными.',
'"Семерку" часто считают непохожей на других, отчужденной. Склонны к уединению, не умеют выражать свои чувства, мысли. Высокочуствительные натуры,чутко реагирующие на настроение других,с трудом принимающие решения.',
'Создает своим обладателям много трудностей, задержек и препятствий. Оно приносит людям одиночество и наивность со стороны друзей и родственников. Они часто не находят понимания у окружающихи страдают от одиночества.',
'Делает людей искренними, выразительными, созидательными и независимыми. Оно определяет их сильной волей, определенностью, силой и способностью выдержать трудности. Это хорошее число имени для политиков.');

var Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var stroka : string;
i,j,g : byte;
summa : integer;
begin
If Edit1.Text <> '' //условие если пользователь не ввел имя
Then
Begin
repeat
Stroka := AnsiLowerCase(Edit1.Text); //присвоение имени в переменную и перевод символов строки в нижний регистр
summa := 0; //обнуление суммы
For i := 1 to length(stroka) do //цикл для подсчета суммы цифр каждой буквы
begin
For j := 0 to 32 do //цикл для нахождения значение буквы
If copy(Stroka,i,1) = m[j] //сравнение выбранной буквы с массивом буукв
Then
begin
summa := summa + m1[j]; //подсчет суммы найденных значений
break; //выход из цикла
end;
End;
Stroka:=IntToStr(summa); //перевод найденной суммы в строку
until summa<10;
Memo1.Text := IntToStr(summa)+' , '+ m2[summa]; //вывод результата
End
Else MessageDlg('Вы не ввели имя',mtError,[mbOk],0); //сообщение об ошибки
end;

end.
0
julia77
84 / 68 / 12
Регистрация: 17.02.2011
Сообщений: 138
02.06.2011, 10:10 #9
Симфония, есть несколько неточностей в алгоритме.
1.Сама постановка задачи. Насколько помню свое детское увлечение нумерологией (все это было давно и потому я могу ошибаться) каждой букве присваивается число от 1 до 9, но не как не порядковый номер в алфавите. Уточните пожалуйста этот аспект. Возможно массив m1 придется переписать.
2. Сама задача делится на две подзадачи: Суммируются числа, соответствующие каждой букве имени, а потом суммируются все цифры в сумме, пока не получится однозначное число. Алгоритм решения каждой подзадачи разный и объединять их внутри repeat until не стоит
Вот решение первой подзадачи (сумма чисел, соответств. буквам)
Delphi
1
2
3
4
5
6
7
8
9
10
11
 Stroka := AnsiLowerCase(Edit1.Text); //присвоение имени в переменную и перевод символов строки в нижний регистр
      For i := 1 to length(stroka) do //цикл для подсчета суммы цифр каждой буквы
        begin
          For j := 0 to 32 do //цикл для нахождения значение буквы
          If copy(Stroka,i,1) = m[j] //сравнение выбранной буквы с массивом буукв
            Then
              begin
                summa := summa + m1[j]; //подсчет суммы найденных значений
                break; //выход из цикла
              end;
        End;
Вот решение второй подзадачи (суммирование чисел в сумме до однозначного числа)
Delphi
1
2
3
4
5
6
7
Stroka:=IntToStr(summa); //перевод найденной суммы в строк
      repeat
        summa := 0; //обнуление суммы
        for i:=1 to length(stroka) do
          summa:=summa+strToInt(copy(Stroka,i,1));
        Stroka:=IntToStr(summa); //перевод найденной суммы в строку
      until summa<10;
3.Ошибка при выводе в мемо результата
у вас
Memo1.Text := IntToStr(summa)+' , '+ m2[summa]; //вывод результата
Но m2 массив с нумерацией от нуля, а следовательно выводить нужно элемент m2[summa-1]
Delphi
1
Memo1.Text := IntToStr(summa)+' , '+ m2[summa-1];
Ну и вместе обработчик нажатия кнопки должен быть таким
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
procedure TForm1.Button1Click(Sender: TObject);
var stroka : string;
  i,j : byte;
  summa : integer;
begin
  If Edit1.Text <> '' //условие если пользователь не ввел имя
  Then
    Begin
      Stroka := AnsiLowerCase(Edit1.Text); //присвоение имени в переменную и перевод символов строки в нижний регистр
      For i := 1 to length(stroka) do //цикл для подсчета суммы цифр каждой буквы
        begin
          For j := 0 to 32 do //цикл для нахождения значение буквы
          If copy(Stroka,i,1) = m[j] //сравнение выбранной буквы с массивом буукв
            Then
              begin
                summa := summa + m1[j]; //подсчет суммы найденных значений
                break; //выход из цикла
              end;
      End;
      Stroka:=IntToStr(summa); //перевод найденной суммы в строк
      repeat
        summa := 0; //обнуление суммы
        for i:=1 to length(stroka) do
          summa:=summa+strToInt(copy(Stroka,i,1));
        Stroka:=IntToStr(summa); //перевод найденной суммы в строку
      until summa<10;
      Memo1.Text := IntToStr(summa)+' , '+ m2[summa-1]; //вывод результата
    End
    Else MessageDlg('Вы не ввели имя',mtError,[mbOk],0); //сообщение об ошибки
end;
Но еще раз проверьте правильно ли вы ввели массив m1.
0
симфония
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 13
02.06.2011, 17:10  [ТС] #10
спасибо))там при сложении именно эти числа и получаются)))))
0
julia77
84 / 68 / 12
Регистрация: 17.02.2011
Сообщений: 138
02.06.2011, 22:28 #11
Действительно, при сложении именно эти цифры и получаются. Тогда массив m1 не нужен вообще. Обратите внимание, код буквы совпадает с индексом соответствующего элемента в массиве m, увеличенного на 1, т.е у элемента m[j] в вашей нумерологии будет код j+1. И часть программы, связанная с вычислением суммы имени будет такой
Delphi
1
2
3
4
5
6
7
8
9
10
11
Stroka := AnsiLowerCase(Edit1.Text); //присвоение имени в переменную и перевод символов строки в нижний регистр
      For i := 1 to length(stroka) do //цикл для подсчета суммы цифр каждой буквы
        begin
          For j := 0 to 32 do 
          If copy(Stroka,i,1) = m[j] 
            Then
              begin
                summa := summa +j+1; //Вот здесь я убрала m1
                break; 
              end;
        End;
0
02.06.2011, 22:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2011, 22:28
Привет! Вот еще темы с решениями:

Программа для вычисления интеграла
Написал код, для вычисления определенного интеграла с точностью до 0,001 ...

Программа для вычисления касательных
Сап всем. Не могу никак придумать, как сделать программу. Есть решение, каркас,...

Программа для вычисления загаданного числа
Нужно написать программу для угадывания числа. 1&lt;число&lt;100; Вопросы вводятся...

программа для вычисления кратного числа
нужно написать программу, выводящую в обратном порядке все числа от 1 до 50,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru