ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

10.02.2010, 22:07
|
|
Новичок
Регистрация: 22.01.2010
Сообщений: 25
Провел на форуме: 63520
Репутация:
0
|
|
Сообщение от SHARA
Лови
Согласно условию у меня подсчитывается количество символов в слове, ну если надо я могу переписать чтобы во всей строке происходил подсчет 
Можеш написать на СИ!!!
|
|
|

10.02.2010, 22:32
|
|
Участник форума
Регистрация: 26.05.2007
Сообщений: 191
Провел на форуме: 389326
Репутация:
9
|
|
Сообщение от KrabKN
Можеш написать на СИ!!!
В условии же на с++ было, синтаксисы языков( с и с++) похожи.
Алгоритм известен . Подумай сам
Изменения минимальны 
|
|
|

10.02.2010, 23:34
|
|
Познающий
Регистрация: 02.09.2007
Сообщений: 67
Провел на форуме: 521298
Репутация:
20
|
|
Задача:
1) Используя подпрограммы создать массив y, элементы которого заданы формулой: ym=random(m), fy(m)
и массив g: gn=Fg(m)=n^2/2
m=1,2,...7
n= 1,2...9
Используя процедурный тип, определить в каждом массиве количество элементов >четырёх.
Как решал:
Код:
Программа(тут пока просто проверил работают модули или нет):
Program Nakol;
uses
mas1,mas2;
Begin
for m:=1 to 7 do
write(mas1[m],' ');
writeln;
writeln;
for n:=1 to 9 do
write(mas2[n],' ');
writeln;
writeln;
end.
Далее модули:
Код:
МОДУЛЬ 1
unit mas1;
interface
Var mas1:array[1..7] of byte;
m:byte;
implementation
begin
for m:=1 to 7 do
mas1[m]:=random(m);
end.
Код:
МОДУЛЬ 2
unit mas2;
interface
Var mas2:array[1..9] of real;
n:byte;
implementation
begin
for n:=1 to 9 do
mas2[n]:=(n*n)/2;
end.
Собственно, подпрограммами (они же модули?) задать массивы удалось, но я не могу понять как реализовать через процедурный тип подсчет, а именно какова структура будет.
На ум приходит одно:
Надо будет сделать еще один моуль, в котором будет функция для подсчета количества, а потом используя процедурный тип в заголовке еще одной функции выводить через нее результат полученный в модуле-подсчете.
Вобщем, подскажите пожалуйста, не напутал ли я что?
|
|
|

11.02.2010, 00:08
|
|
Участник форума
Регистрация: 18.07.2009
Сообщений: 272
Провел на форуме: 2083691
Репутация:
330
|
|
Сообщение от KrabKN
Можеш написать на СИ!!!
Держи:
Код:
#include <stdio.h>
#include <string>
int kol(int n, int m);
void kol();
int main()
{
int i;
int g;
int r;
printf("The program finds the current number of positive numbers\n");
printf("Enter the number of: ");
scanf("%d,%d", &g, &r);
i=kol(g,r);
printf("Number of positive numbers entered:%d\n", i);
printf("The program will calculate the number of characters in the word\n");
kol();
return 0;
}
int kol(int n, int m)
{
for(; n<m; n++) {
if (n>=0) printf("%d ", n);
}
return n;
}
void kol()
{
char str[80];
printf("Enter word: ");
scanf("%64s", str);
printf("Number of characters in the word %d", strlen(str));
}
|
|
|

11.02.2010, 00:23
|
|
Участник форума
Регистрация: 26.05.2007
Сообщений: 191
Провел на форуме: 389326
Репутация:
9
|
|
KrabKN
Лучше бы сам бы додумал, изменения минимальны были 
|
|
|

11.02.2010, 14:40
|
|
Новичок
Регистрация: 20.10.2009
Сообщений: 9
Провел на форуме: 54566
Репутация:
0
|
|
#include <iostream.h>
using namespace std;
int main ()
{
int a[3][3];
int fly;
int i,j,min,mini,k,s;
for (i=0;i<3;i++)
for (j=0;j<3;j++)
{
cout<<endl<<"vvedite zna4enie"<<"=";
cin>>a[i][j];
}
fly==0;
for (i=0;i<3;i++){
s=0;
for (j=0;j<3;j++)
s+=a[i][j];
if (min>s){
min=s;
mini=i+1;
}}
cout<<endl<<"Min zna4enie "<<min<<" v "<<mini<<" stroke";
cin>>k;
}
Помогите пожалуйста, эту программу нужно переделать так..
Найти минимум элементов >0 в строке в которой хотя бы один элемент равен нулю.
Спасибо заранее.
|
|
|

11.02.2010, 20:22
|
|
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
Провел на форуме: 1313455
Репутация:
249
|
|
Сообщение от worlock13viper
помогите народ задачка такая :
Разработать приложение в Delphi,которое при вводе числа выводит на экран его текстовую интерпритацию:.. Вот такая задачка. если она "пойдет" то рублей 20 на R кашель кину)) |Тестовая интерпретация - это как
102 - Сто два
1031 - Одна тысяча тридцать один|, мне сказали от 1 до 1миллиона(1...1 000 000)
Код:
Type
T = record
StrRepr:string;
End;
Type
TT = record
One:array[0..9] of T;
End;
const
ts=' тысяч';
var
frmMain: TfrmMain;
Mass:array[1..7] of TT;
MassEx:array[10..19] of string;
implementation
{$R *.dfm}
procedure SpecialRange(Str:string;var intA,intB:integer);
begin
if (9 < strtoint(str)) and (strtoint(str)<20) then begin
if (intB <> 3) then frmMain.lblOut.Caption := MassEx[strtoint(str)]+' '+frmMain.lblOut.Caption
else
frmMain.lblOut.Caption:=MassEx[strtoint(str)]+ts+' '+frmMain.lblOut.Caption;
intA:=intA-2;
intB:=intB+2;
end;
end;
procedure TfrmMain.Button1Click(Sender: TObject);
var
intA,intB:integer;
begin
//Фильтр на ввод символов в поле ставить не стал(исходники могут скачать не все,
//а вдруг кому то потребуется), поэтому
try
if (strtoint(edtIn.text)-1)<0 then begin
showmessage('Введите число в диапазоне от 1(одного) до 1000000(миллиона)');
exit;
end;
except
showmessage('Введите число в диапазоне от 1(одного) до 1000000(миллиона)');
exit;
end;
//Не больше миллиона!
if strtoint(edtIn.text) > 1000000 then begin
showmessage('Не больше миллиона!');
edtIn.Text := '1000000';
edtIn.SetFocus;
exit;
end;
lblOut.Caption := '';
//intA счетчик
//В intB текущий разряд
intB:=1;
intA:=length(edtIn.Text);
//Последние 2 цифры в переделе от 9 - 19?
SpecialRange(copy(edtIn.Text,length(edtIn.Text)-1,2),intA,intB);
while intA > 0 do begin
//Если строка не пустая
if (Mass[intB].One[strtoint(copy(edtIn.Text,intA,1))].StrRepr <> '') then lblOut.Caption := Mass[intB].One[strtoint(copy(edtIn.Text,intA,1))].StrRepr+' '+lblOut.Caption;
if (intA = 1) and (intB= 6) and (pos(ts,lblOut.Caption)=0) then lblOut.Caption:=lblOut.Caption+ts;
// 9< Десятки тысяч и тысячи < 19
if (length(edtIn.text) > 4) and (intB=3) then SpecialRange(copy(edtIn.Text,length(edtIn.Text)-4,2),intA,intB);
inc(intB);
dec(intA);
end;
//Только одна буква большая
if not(chkUp.Checked) then lblOut.Caption:=copy(lblOut.Caption,1,1)+ AnsiLowerCase(copy(lblOut.Caption,2,length(lblOut.Caption)-1));
edtIn.SetFocus;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
//Единицы
Mass[1].One[0].StrRepr := '';
Mass[1].One[1].StrRepr := 'Один';
Mass[1].One[2].StrRepr := 'Два';
Mass[1].One[3].StrRepr := 'Три';
Mass[1].One[4].StrRepr := 'Четыре';
Mass[1].One[5].StrRepr := 'Пять';
Mass[1].One[6].StrRepr := 'Шесть';
Mass[1].One[7].StrRepr := 'Семь';
Mass[1].One[8].StrRepr := 'Восемь';
Mass[1].One[9].StrRepr := 'Девять';
//10-19 Специальные
MassEx[10]:='Десять';
MassEx[11]:='Одиннадцать';
MassEx[12]:='Двенадцать';
MassEx[13]:='Тринадцать';
MassEx[14]:='Четырнадцать';
MassEx[15]:='Пятнадцать';
MassEx[16]:='Шестнадцать';
MassEx[17]:='Семнадцать';
MassEx[18]:='Восемнадцать';
MassEx[19]:='Девятнадцать';
//Десятки
Mass[2].One[0].StrRepr := '';
Mass[2].One[2].StrRepr := 'Двадцать';
Mass[2].One[3].StrRepr := 'Тридцать';
Mass[2].One[4].StrRepr := 'Сорок';
Mass[2].One[5].StrRepr := 'Пятьдесят';
Mass[2].One[6].StrRepr := 'Шестьдесят';
Mass[2].One[7].StrRepr := 'Семьдесят';
Mass[2].One[8].StrRepr := 'Восемьдесят';
Mass[2].One[9].StrRepr := 'Девяносто';
//Сотни
Mass[3].One[0].StrRepr := '';
Mass[3].One[1].StrRepr := 'Сто';
Mass[3].One[2].StrRepr := 'Двести';
Mass[3].One[3].StrRepr := 'Триста';
Mass[3].One[4].StrRepr := 'Четыреста';
Mass[3].One[5].StrRepr := 'Пятьсот';
Mass[3].One[6].StrRepr := 'Шестьсот';
Mass[3].One[7].StrRepr := 'Семьсот';
Mass[3].One[8].StrRepr := 'Восемьсот';
Mass[3].One[9].StrRepr := 'Девятьсот';
//Тысячи
Mass[4].One[0].StrRepr := '';
Mass[4].One[1].StrRepr := 'Одна тысяча';
Mass[4].One[2].StrRepr := 'Две тысячи';
Mass[4].One[3].StrRepr := 'Три тысячи';
Mass[4].One[4].StrRepr := 'Четыре тысячи';
Mass[4].One[5].StrRepr := 'Пять тысяч';
Mass[4].One[6].StrRepr := 'Шесть тысяч';
Mass[4].One[7].StrRepr := 'Семь тысяч';
Mass[4].One[8].StrRepr := 'Восемь тысяч';
Mass[4].One[9].StrRepr := 'Девять тысяч';
//Десятки тысяч
Mass[5].One[0].StrRepr := '';
Mass[5].One[2].StrRepr := 'Двадцать';
Mass[5].One[3].StrRepr := 'Тридцать';
Mass[5].One[4].StrRepr := 'Сорок';
Mass[5].One[5].StrRepr := 'Пятьдесят';
Mass[5].One[6].StrRepr := 'Шестьдесят';
Mass[5].One[7].StrRepr := 'Семьдесят';
Mass[5].One[8].StrRepr := 'Восемьдесят';
Mass[5].One[9].StrRepr := 'Девяносто';
//Сотни тысяч
Mass[6].One[0].StrRepr := '';
Mass[6].One[1].StrRepr := 'Сто';
Mass[6].One[2].StrRepr := 'Двести';
Mass[6].One[3].StrRepr := 'Триста';
Mass[6].One[4].StrRepr := 'Четыреста';
Mass[6].One[5].StrRepr := 'Пятьсот';
Mass[6].One[6].StrRepr := 'Шестьсот';
Mass[6].One[7].StrRepr := 'Семьсот';
Mass[6].One[8].StrRepr := 'Восемьсот';
Mass[6].One[9].StrRepr := 'Девятьсот';
//Миллион ;D
Mass[7].One[1].StrRepr := 'Один Миллион';
end;
Исходники и скомпилированный .exe
pass: antichat.ru
Последний раз редактировалось Dosia; 15.02.2010 в 18:32..
|
|
|

11.02.2010, 23:39
|
|
Новичок
Регистрация: 16.11.2008
Сообщений: 27
Провел на форуме: 104236
Репутация:
6
|
|
to Dosia: с десятитысячными не пашет
|
|
|

12.02.2010, 01:37
|
|
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
Провел на форуме: 1313455
Репутация:
249
|
|
Дробями? Еще бы программа работала с дробями, если учесть, что на основании примеров просящего я такой возможности не предусмотрел, только целые числа (1- 1 000 000)
UPD: Время 12.02.2010, 00:37
Глаза уже подводят, показалось что десятичными, бывает.
Пофиксил прогу теперь все нормально со всеми числами (1- 1 000 000), целыми естественно.
Последний раз редактировалось Dosia; 15.02.2010 в 18:29..
|
|
|

12.02.2010, 06:12
|
|
Новичок
Регистрация: 16.11.2008
Сообщений: 27
Провел на форуме: 104236
Репутация:
6
|
|
не тупи,есть еще такое понятие как разряд,и я имел ввиду разряд десятитысячных,как видишь,он входит в условие программы....все работает только при вводе чисел <10 000
Последний раз редактировалось DimkO; 12.02.2010 в 18:14..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|