PDA

Просмотр полной версии : Помогите девушке написать 2 програмулинки



merelin
13.12.2006, 12:09
Привет мальчишки, напишите пожалуйсто две програмулинки. Препод злюка нифига непонятно объясняет, я написала 8 задачек, а две никак не могу додумать, а к пятнице нужно здать, помогите пожалуйсто.
Вот задачки:
1-ая:

Перепишите функцию revers (Программа 19) с использованием указателей.

=
Программа 19. Реверсирование строк
Реверсирование это перестановка символов строки в обратном порядке, при этом меняются местами первый и последний символы, второй и предпоследний и т.д.

#include <iostream.h>
#include <string.h>
//revers: перестановка символов s в обратном порядке
void revers(char s[])
{
int i, j;//i - номер первого, второго,...символа
//j - номер последнего, предпоследнего,...символа
char tmp;//Промежуточная переменная для обмена символов
for(i = 0, j = strlen(s) -1; i < j; i++, j--)
tmp = s[i], s[i] = s[j], s[j] = tmp;
}
int main()
{
const int MAX = 100;
char s[MAX];//Память под строку
cout << "Введите строку:\ n";
cin.getline(s, MAX);
revers(s);//Вызов функции реверсирования строки
cout << "Реверсированная строка:\ n";
cout << s;
return 0;
}


===

2-ая:

Напишите программу ical, которая может выполнять 4 арифметические действия над своими аргументами, то есть в ответ на ввод команды типа
ical 5 + 4
печатать результат выполнения заданной операции: 9.

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

==

P.S. заранее огромное спасибо, Вы ведь все ПРОФИ, я думаю это несложно. а я полный новичёк. Тем более девушке это достаточно сложно понять. Спасибо Вам за поддержку и понимание.

Если что пишите на e-mail: coolkeeper@mail.ru

Oleg_Rus
14.12.2006, 08:13
программа нужна на Delphi или Paskal?

merelin
14.12.2006, 09:09
Программы нужны на С++.

Хыиуду
14.12.2006, 10:09
Указатели - это то, за что я не люблю Си.
В общем, если работать с указателями, то i и j будут не индексами массива, а указателями на эти элементы. Короче, если s^ (не помню, как правильно синтаксически пишется) - указатель на массив s, то он же - указатель на его первый элемент (а по-сишному - нулевой). Соответственно, (s+1)^ - указатель на следующий элемент. Вот идешь, циклически изменяешь один указатель от s до s+length(s)/2, а второй от s+length(s) до s+length(s)/2, и обмениваешь их значения.
Почему указатель должен идти до половины массива, а не по всему массиву (то же, кстати, к индексам относится) - если идти по всему массиву, у тебя он перевернется два раза и примет первоначальный вид. То есть, если в нем 10 элементов, 1-й поменяется с 10-м, 2-й с 9-м, ..., 9-й снова со вторым и 10-й с первым.

merelin
14.12.2006, 10:26
Спасибо мальчики! Первую задачку сообразила, можете подсказать на счёт второй. Если знаете как написать прям код программы, буду очень благодарна, мне мой друг написал, но он написал на Visual С++, а мне нужно было на С++ он сказал что он на нём не сможет. Помогите плиз, я в этой командной строке вообще ничё непонимаю. Напишите плиз Код...ну пожалуйсто.

BBB
14.12.2006, 13:43
... но он написал на Visual С++, а мне нужно было на С++...Эээ... А в чем разница? Разве Visual С++ не является С++ ???

merelin
14.12.2006, 13:57
А я и не знаю, то есть если скомпилировать код написанный в Visual С++ компилятором от С++ он скомпилирует и будет работать. То есть если скопировать код в С++ он будет компилироваться и работать? Я и не знала...а что это действительно одно и тоже!

Artak
14.12.2006, 14:13
merelin если

" мне мой друг написал, но он написал на Visual С++"

это про меня то я отправил тебя 2 файли,один из которих написанно в консоле,как и ты хотела.

Хыиуду
14.12.2006, 15:03
Про вторую программу - там надо получать список аргументов, не помню, как это называется, то ли argv, то ли argumentslist, то ли еще как, не помню Си. Дальше код примерно такой (примерно! Это псевдокод!)
a=argv[0];
sign=argv[1];
b=argv[2];
if (sign=="+")
{return a+b}
if (sign=="-")
{return a-b}
if (sign=="*")
{return a*b}
и так далее. Только предварительно а и в из строк надо перевести в вид целый или float.
Как-то так

merelin
14.12.2006, 15:31
merelin если

" мне мой друг написал, но он написал на Visual С++"

это про меня то я отправил тебя 2 файли,один из которих написанно в консоле,как и ты хотела.



Да-да! Это ты!
А код в С++ компилироваться будет? Если да, то спасибо огромное!