ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #2351  
Старый 10.02.2010, 22:07
KrabKN
Новичок
Регистрация: 22.01.2010
Сообщений: 25
Провел на форуме:
63520

Репутация: 0
По умолчанию

Цитата:
Сообщение от SHARA  
Лови

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

Можеш написать на СИ!!!
 
Ответить с цитированием

  #2352  
Старый 10.02.2010, 22:32
SHARA
Участник форума
Регистрация: 26.05.2007
Сообщений: 191
Провел на форуме:
389326

Репутация: 9
По умолчанию

Цитата:
Сообщение от KrabKN  
Можеш написать на СИ!!!
В условии же на с++ было, синтаксисы языков( с и с++) похожи.
Алгоритм известен . Подумай сам
Изменения минимальны
 
Ответить с цитированием

  #2353  
Старый 10.02.2010, 23:34
Syntaxys
Познающий
Регистрация: 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.
Собственно, подпрограммами (они же модули?) задать массивы удалось, но я не могу понять как реализовать через процедурный тип подсчет, а именно какова структура будет.


На ум приходит одно:

Надо будет сделать еще один моуль, в котором будет функция для подсчета количества, а потом используя процедурный тип в заголовке еще одной функции выводить через нее результат полученный в модуле-подсчете.

Вобщем, подскажите пожалуйста, не напутал ли я что?
 
Ответить с цитированием

  #2354  
Старый 11.02.2010, 00:08
Ins3t
Участник форума
Регистрация: 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));
}
 
Ответить с цитированием

  #2355  
Старый 11.02.2010, 00:23
SHARA
Участник форума
Регистрация: 26.05.2007
Сообщений: 191
Провел на форуме:
389326

Репутация: 9
По умолчанию

KrabKN
Лучше бы сам бы додумал, изменения минимальны были
 
Ответить с цитированием

  #2356  
Старый 11.02.2010, 14:40
GroodeR
Новичок
Регистрация: 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 в строке в которой хотя бы один элемент равен нулю.

Спасибо заранее.
 
Ответить с цитированием

  #2357  
Старый 11.02.2010, 20:22
Dosia
Участник форума
Регистрация: 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..
 
Ответить с цитированием

  #2358  
Старый 11.02.2010, 23:39
DimkO
Новичок
Регистрация: 16.11.2008
Сообщений: 27
Провел на форуме:
104236

Репутация: 6
По умолчанию

to Dosia: с десятитысячными не пашет
 
Ответить с цитированием

  #2359  
Старый 12.02.2010, 01:37
Dosia
Участник форума
Регистрация: 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..
 
Ответить с цитированием

  #2360  
Старый 12.02.2010, 06:12
DimkO
Новичок
Регистрация: 16.11.2008
Сообщений: 27
Провел на форуме:
104236

Репутация: 6
По умолчанию

не тупи,есть еще такое понятие как разряд,и я имел ввиду разряд десятитысячных,как видишь,он входит в условие программы....все работает только при вводе чисел <10 000

Последний раз редактировалось DimkO; 12.02.2010 в 18:14..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сюда выкладываем все проги для фрикринга мобильников, которых знаем! nigger Сотовый фрикинг 5 11.04.2009 11:15
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ