Консультация № 103885
01.10.2007, 10:40
0.00 руб.
0 2 2
Доброе утро!
Огромная просьба помочь написать программки на с++. До конца недели надо 10 таких написать, 6 я знаю как делать-сама, огромная просьба помогите написать хотя бы две из ниже перечисленного? я просто не успеваю совсем(((
КР1
В одномерном массиве, состоящем из n целых элементов, вычислить:
а) минимальный по модулю элемент массива;
b) сумму модулей элементов массива, расположенных после первого элемента, равного нулю;
c) преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в четных позициях, а во второй половине – элементы, стоявшие в нечетных позициях.

КР2
Дан текст. Напечатать в алфавитном порядке все согласные буквы, которые входят хотя бы в одно слово.

КР3
Распечатать фамилии тех учеников класса, которые являются хорошистами и отличниками по итогам года. Также указать, насколько их средний балл отличается от среднего балла класса.

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

Обсуждение

Неизвестный
01.10.2007, 14:21
общий
это ответ
Здравствуйте, Loona!
KP1.
a)
// для abs() надо подключать stdio.h и math.h
int m[n]; // объявление массива
// Здесь требуется процедура заполнения массива

// Перед вхождением в for присваиваем переменной x (где будет храниться
// информация о минимальном числе) первое хначение массива m[0]
int x = abs(m[0]);
// Отсчитывать начинаем не с 0 а с 1
for (int i = 1; i < n; i++)
if (abs(m[i]) < x) x = m[i];
// В x теперь минимальное по модулю значение массива.

б)
// требуется процедура определенияя массива m[n] и его заполнения

bool x = false; // это флаг
int sum = 0; // здесь будет храниться сумма
for (int i = 0; i < 4; i++)
{
if (x == true) {sum = sum + abs(m[i]);}
else {if (m[i] == 0) x = true;}
}
// теперь в sum храниться требуемая сумма

в)
// для начала надо иметь массив данных m[n] и новый массив k[n]
for (int t = 0; t <= n/2; t++) k[t] = m[t*2];
for (int t = 0; t <= n/2; t++) k[n/2+t+1] = m[t*2+n/2-1];

KP2
String as1 = "", as2 = "", S;
S = "Ваш текст"
String cc[19]= {‘б‘, ‘г‘, ‘д‘, ‘ж‘, ‘з‘, ‘к‘, ‘л‘, ‘м‘, ‘н‘, ‘п‘, ‘р‘, ‘с‘, ‘т‘, ‘ф‘, ‘х‘, ‘ц‘, ‘ч‘, ‘ш‘, ‘щ‘};
for (int n = 1; n < S.Length() ; n++)
{
for (int i = 0; i<19; i++)
{
if (S.SubString(n,1) == cc[i])
as1 = as1 + S.SubString(n,1);
}
}
for (int n = 0; n < 19 ; n++)
{
for (int i = 1; i <= as1.Length(); i++)
{
if (cc[n] == as1.SubString(i,1))
as2 = as2 + cc[n];
}
}

KP3
Непонятно в каком виде представляются данные
Неизвестный
01.10.2007, 16:13
общий
это ответ
Здравствуйте, Loona!
КР1 решена...
а вот в КР2 есть проблемі...не могу понять почему он распечатівает массив там где не надо...возможно єто у меня какй то глюк...


Приложение:
КР1#include <iostream.h>#include<conio.h>#include <math.h>#define n 8 //kol-vo elemntov massivavoid main(){int array[n];clrscr();cout<<"Vvedite elementy massiva: "<<endl;int min=32000; for(int i=0;i<n;i++) { cin>>array[i]; if(abs(array[i])<min) //srazu pri vvode opredelyayem minimal‘nyi { //po modulyu element(abs - preobrazovuet) min=array[i]; //chislo po modulyu } }int min2=min; //dlya podstrahovki (proga pochemuto menyala eti znacheniya //v konce, tak i ne ponyal pochemu)int flag=0;int sum=0; for(i=0;i<n;i++) { if(array[i]==0) { flag=1; for(int j=i;j<n;j++) { sum+=abs(array[j]); //schitaem summu, nachinaya s i-go elementa, } //ravnogo nulyu } if (flag==1) { break; } }int sum2=sum; // toje dlya podstrahovkiint array1[n/2]; //1-ya chast‘int array2[n/2]; //2-ya chast‘int q,w;q=w=0; for(i=0;i<n;i++) { if(i%2==0) { array1[q=]=array[i]; q++; } else { array2[w]=array[i]; w++; } }for(i=0;i<q;i++) { array[i]=array1[i]; } //skleivaem 1-yu i 2-yu chast‘ v nash massivint cnt=0;for(i=q;i<n;i++) { array[i]=array2[cnt]; cnt++; }cout<<"minimal‘nyi => "<<min<<endl;cout<<"summa => "<<sum<<endl;for(i=0;i<n;i++) { cout<<array[i]<<" "; }}КР2#include <iostream.h>#include<conio.h>#include<string.h>void main(){char* s="I love rock and roll";//char* s2;int key;int cnt=0;clrscr();s2=" ";/*while((key=getch())!=27) { cout<<key; } */for(int i=0;i<strlen(s);i++) { if(s[i]%98==0 || s[i]%99==0 || s[i]%100==0 || s[i]%102==0 || s[i]%103==0 || s[i]%104==0|| s[i]%106==0 || s[i]%107==0 || s[i]%108==0 || s[i]%109==0|| s[i]%110==0 || s[i]%112==0 || s[i]%113==0 || s[i]%114==0|| s[i]%115==0 || s[i]%116==0 || s[i]%118==0 || s[i]%119==0|| s[i]%120==0 || s[i]%121==0 || s[i]%121==0) { s2[cnt]=s[i]; cnt++; } }char a;for(int j=0;j<cnt;j++){ for(i=1;i<cnt;i++) { if(s2[j]<s2[i]) { a=s2[j]; s2[j]=s2[i]; s2[i]=a; } }}clrscr();cout<<s2<<endl;//cout<<"rezul‘tat "<<endl;cout<<"rezul‘tat: ";s2=" ";}
Форма ответа