среда, 2 декабря 2009 г.

вывести первые буквы слов в строке

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

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

void task()
{
 cout << "input string: ";
 string s;
 getline(cin, s);


 cout << "result:" << endl;
 istringstream iss(s);
 while (iss >> s)
 {
  cout << (*s.begin()) << endl;
 }
}

int main(int argc, char *argv[])
{
 task();
 return 0;
}

output

input string: qwer   r    qqwww eeee   r   q12
result:
q
r
q
e
r
q

вхождение слова

Ввести строку и слово, вывести все слова, которые содержат введенное слово как составную часть.

#include <iostream>
#include <string>
#include <sstream>

using namespace std;


void task()
{
 string s;
 cout << "input string: ";
 getline(cin, s);


 string w;
 cout << "input word: ";
 cin >> w;

 cout << "result: " << endl;

 istringstream iss(s);
 while(iss >> s)
 {
  if (string::npos != s.find(w))
  {
   cout << s << endl;
  }
 }
}

int main(int argc, char *argv[])
{
 task();
 return 0;
}

output

input string: hello world more
input word: ll
result:
hello

вторник, 1 декабря 2009 г.

сумма и произведение элементов в массиве

Дано N вещественных чисел. a1,a2....an. Вывести сумму и произведение чисел из данного набора. Использовать структуру цикл с постусловием.

program one;

const
N = 5;

var
A: array [1..N] of integer;
i: integer;
sum: integer;
mul: integer;

begin
writeln('инициализация массива случайными числами');
for i:=1 to N do begin
A[i]:=random(9)+1; {числа от 1 до 9, т.е. неравные 0, иначе произведение будет равно 0}
writeln(A[i]);
end;

{начальное значение суммы}
sum:=0;
{начальное значение произведения}
mul:=1;
{начальный номер элемента}
i:=1;

repeat
sum:=sum+A[i];
mul:=mul*A[i];
i:=i+1;
until i > N;

writeln('sum=', sum);
writeln('mul=', mul);

end.

число из Двоичной системы счисления в десятичную

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


FUNCTION BIN2DEC(BIN: STRING): LONGINT;

VAR
J : LONGINT;
Error: BOOLEAN;
DEC : LONGINT;

BEGIN
DEC := 0;
Error := False;
FOR J := 1 TO Length(BIN) DO
BEGIN
IF (BIN[J] <>'0') AND (BIN[J] <>'1') THEN Error := True;
IF BIN[J] = '1' THEN DEC := DEC + (1 SHL (Length(BIN) - J));
{ (1 SHL (Length(BIN) - J)) = 2^(Length(BIN)- J) }
END;
IF Error THEN BIN2DEC := 0
ELSE BIN2DEC := DEC;
END;

Функции перевода из одной системы счисления в другую

Тут собвственно и добавлять нечего. Качественный материал.

Функции перевода из одной системы счисления в другую

проверка символа на гласность




#include <iostream>
#include <string>
#include <sstream>
#include <set>

using namespace std;

//твоя функция
int foo(char c)
{
//тут перечисли все гласные которые знаешь
string glasnye("eyuioa");

//find вернет npos если символ не содежится в glasnye
return (string::npos != glasnye.find(c)) ? 1 : 0;
}


void task()
{
//выводим приглашение на ввод символа
cout << "input char: ";

//вводим символ с клавиатуры
char c;
cin >> c;

//вводим результат
cout << "result: " << foo(c) << endl;
}

int main(int argc, char *argv[])
{
task();
return 0;
}

Ввести строку , вывести только слова, заканчивающиеся на гласную букву




#include <iostream>
#include <string>
#include <sstream>
#include <set>

using namespace std;

void task()
{
//выводим приглашение на ввод строки
cout << "input string: ";

//вводим строку в переменную s
string s;
getline(cin, s);

cout << "result words:" << endl;

//дополни строку остальными гласными (можно учесть русские и прописные буквы)
string glasnye("eyuioa");

//инициализируем поток ввода из которого будем извлекать слова
istringstream iss(s);


while (iss >> s) //пока слова извлекаются
if (string::npos != glasnye.find(*s.rbegin())) //последняя буква не гласная?
cout << s << endl; //печатаем слово
}

int main(int argc, char *argv[])
{
task();
return 0;
}