Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 16.10.2011
Сообщений: 45

printf("Hello, CyberForum.ru!!!\n"); //несколько вопросов от начинающего программиста

16.10.2011, 13:05. Показов 1461. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток !
Хотел бы получить советы от опытных программеров )
1) Начали на 1 курсе сразу с языка Си (до этого дела даже с паскалем не имел )
Сейчас читаю Керниган Риччи "язык программирования с"
Друзья, чтобы вы еще посоветовали почитать? (желательно с примерами и чтобы все шаги описывались; можно что нибудь для чайников)
2) Как же без лабораторных работ

Лр 1:

Ввести целое число N, вывести все простые делители этого числа.
Я просто перебрал простые делители. Вот код:

#include <stdio.h>
void main (void)
{
int N;
int c;
printf("type N:\t");
scanf("%d", &N);
while (N%2==0 && 2<=N) {
printf("del = 2\n");
N = N/2;
}
while (N%3==0 && 3<=N) {
printf("del = 3\n");
N = N/3;
}
while (N%5==0 && 5<=N) {
printf("del = 5\n");
N = N/5;
}
while (N%7==0 && 7<=N) {
printf("del = 7\n");
N = N/7;
}
while (N%11==0 && 11<=N) {
printf("del = 11\n");
N = N/11;
}
while (N%13==0 && 13<=N) {
printf("del = 13\n");
N = N/13;
}
while (N%17==0 && 17<=N) {
printf("del = 17\n");
N = N/17;
}
while (N%19==0 && 19<=N) {
printf("del = 19\n");
N = N/19;
}
while (N%23==0 && 23<=N) {
printf("del = 23\n");
N = N/23;
}
if (N!=1)
printf("del = %d\n", N);

c=getchar(); //есть какой нибудь оператор, чтобы консоль не закрывалась ? c=getchar(); //пока приходится пользоваться этим не судите строго
}
Программа очень приметивна, т.е. если ввести число N равное 29*31, то она и выпишит это число 29*31 (тк я перебрал только до 23) Как можно улучшить программу ?

Лр 2:

Ввести строку и слово, удалить все вхождения слова и вывести строку.
задание немного не понял ввести строку и слово с клавиатуры ? (используя оператор scanf)
пока надумал только это: 2 массива, ввести строку\слово, зачистить тот массив в котором слово, вывести эти массивы.
На правильном хоть пути ?)


Заранее большое спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.10.2011, 13:05
Ответы с готовыми решениями:

Несколько вопросов от начинающего
1. какое свойство объектов отвечает за 'доступ'? 2. Можно ли в запросе в графе 'условие отбора' ссылться на значения полей формы,...

Несколько простых вопросов от начинающего
Здравствуйте! Мне интересны следующие вопросы: 1. Где лучше объявить переменные нужные на протяжении всей работы программы? Например...

Несколько вопросов начинающего на Lotus+java
Добрый день. Вводные: Клиент 6.5.3 1. При замене суперкласса своей программы с AgentBase на DebugAgentBase на яваконсоли...

19
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
16.10.2011, 13:11
Цитата Сообщение от wind_mill Посмотреть сообщение
используя оператор scanf
scanf функция, а не оператор

Цитата Сообщение от wind_mill Посмотреть сообщение
Ввести строку и слово, удалить все вхождения слова и вывести строку.
задание немного не понял ввести строку и слово с клавиатуры ?
задание вы поняли верно

Цитата Сообщение от wind_mill Посмотреть сообщение
пока надумал только это: 2 массива, ввести строку\слово, зачистить тот массив в котором слово, вывести эти массивы.
На правильном хоть пути ?)
в конце вашей книги есть справочник функций по работе со строками, вот их и используйте
1
1 / 1 / 0
Регистрация: 16.10.2011
Сообщений: 45
16.10.2011, 13:13  [ТС]
оперативно
будем думать !
0
анимешник++
 Аватар для Iworb
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
16.10.2011, 13:19
День добрый.
Сам начинал учить Си в таком состояние) Ничего не читал, просто внимательно слушал лекции.
По поводу программы: на сколько я помню (а помню я не очень), простой делитель числа - то число, на которое оно делится без остатка. Если просто вывести, то как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
void main()
{
    int a;
    cout<<"Введите число: ";
    cin>>a;
    for(int i=1;i<a;i++)
        if(!(a%i)) cout<<i<<" ";
    system("pause");
}
(Писал в блокнотике, так что если чего не хватает - пишите)
1
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
16.10.2011, 13:27
Цитата Сообщение от wind_mill Посмотреть сообщение
Друзья, чтобы вы еще посоветовали почитать?
А Я архангельский у него два плюса первый это работает поиск второй из десяти книг тока в нём нашёл нужную инфу он хоть справочник но как учебник тоже подойдёт

Добавлено через 6 минут
Iworb, вот подправил до рабочего вида
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std; 
int main()
{
        int a;
        cout<<"Введите число: ";
        cin>>a;
        for(int i=1;i<=a;i++)
                if(!(a%i)) cout<<i<<" ";
        system("pause");
 return 0;       
}
0
1 / 1 / 0
Регистрация: 16.10.2011
Сообщений: 45
16.10.2011, 13:29  [ТС]
День добрый.
Сам начинал учить Си в таком состояние) Ничего не читал, просто внимательно слушал лекции.
По поводу программы: на сколько я помню (а помню я не очень), простой делитель числа - то число, на которое оно делится без остатка. Если просто вывести, то как-то так:
простое число, это число, которое делится только на 1 и на само себя (например 2, 3 ,5 ,7 ,11,13 и тд)
ваша программа выпишет все делители числа (т.е. если а=8, то выпишет 1,2,4,8. А нужно чтобы выписал только 2 )
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
16.10.2011, 13:32
один момент щас всё будет
1
анимешник++
 Аватар для Iworb
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
16.10.2011, 13:37
wind_mill, Так вам нужно проверить - простое это число или нет? (a=5 - результат=простое)
Или по заданному числу вывести все его делители, которые являются простыми числами? (a=25 результат=1, 5)
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
16.10.2011, 13:38
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std; 
int main()
{
        int a;
        cout<<"Введите число: ";
        cin>>a;
        for(int i=2;i<a;i++)
               if(!(a%i)) {cout << "число непростое"; system("pause");return 0;} 
       
        cout << "делители чила " <<1 <<" и " <<a <<endl;
        system("pause");
 return 0;       
}
1
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
16.10.2011, 13:41
1) У нас тоже с 1 семестра шарашили лабы по Си, наоборот это плюс. В методичке писали про пару функций, а в заданиях требовали с десяток) Плюс ко всему она наполовину описывала Паскаль, а не Си. Из литературы мне помог: Дейтел (Как программировать на С++) Хотя о нем я узнал только ко 2 семестру. До этого читал "С++ для чайников" и смотрел уроки teantog-a по ютюбу И главное - это практика, практика и еще раз практика. Забей на выражение "ну нам такое не давали, этого еще не было, я такое не знаю" - учи сам. Здесь все лежит на самопознании.

А вот первая задачка на С, т.к. некоторые преподователи могут потребовать именно на обычном
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <conio.h> // áèáëèîòåêà äëÿ getch()
#include <stdio.h>
 
int main(void)
{
    int a;
    printf("Enter a: ");
    scanf ("%i", &a);
    for (int i = 1; i <= a; i++)
        if (a % i == 0) // åñëè îñòàòîê îò äåëåíèÿ a íà i ðàâåí íóëþ
            printf("%i ", i);
    getch(); // ïàóçà
    return 0;
}
это выводит простые делители, сейчас переправлю чтоб только простые выводило
2
1 / 1 / 0
Регистрация: 16.10.2011
Сообщений: 45
16.10.2011, 13:43  [ТС]
вот так:
Или по заданному числу вывести все его делители, которые являются простыми числами? (a=25 результат=1, 5)
0
анимешник++
 Аватар для Iworb
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
16.10.2011, 13:49
wind_mill, Тогда нужны дополнительные функции, которые проверяли бы простоту числа, сейчас напишу. К сведению - пишу для любого числа (т.е. оно найдет все простые делители даже для не простого числа, но ели нужно, то можно и проверку на простоту искомого числа сделать).

Добавлено через 3 минуты
Воспользовавшись вышенаписанным от MrGluck кодом на Си, получил вот такое:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <conio.h> // библиотека для getch()
#include <stdio.h>
 
long fact(long p)
{
    long r=1;
    for(int i=1;i<=r;i++)
        r*=i;
    return r;
}
 
int iseasy(long p)
{
    if((fact(p-1)+1)%p) return 0;
    else return 1;
}
 
int main(void)
{
    long a;
    printf("Enter a: ");
    scanf ("%d", &a);
    for (long i = 1; i <= a; i++)
        if ((!(a%i))&&(iseasy(i))) // если остаток от деления a на i равен нулю
            printf("%d ", i);
    getch(); // пауза
    return 0;
}
0
 Аватар для talis
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.10.2011, 13:51
Цитата Сообщение от wind_mill Посмотреть сообщение
Сейчас читаю Керниган Риччи "язык программирования с"
Друзья, чтобы вы еще посоветовали почитать? (желательно с примерами и чтобы все шаги описывались; можно что нибудь для чайников)
Ничего лучше вы не найдёте. Найдёте проще, но не лучше.

Из доков посоветую http://cplusplus.com/reference. Там справка по стандартной библиотеке Си++ и Си. ВНИМАНИЕ: заголовочный файл Си stdlib.h в Си++ называется cstdlib; stdio.h -> cstdio; string.h -> cstring; Сайт построен с учётом этого.
1
1 / 1 / 0
Регистрация: 16.10.2011
Сообщений: 45
16.10.2011, 13:53  [ТС]
1) У нас тоже с 1 семестра шарашили лабы по Си, наоборот это плюс. В методичке писали про пару функций, а в заданиях требовали с десяток) Плюс ко всему она наполовину описывала Паскаль, а не Си. Из литературы мне помог: Дейтел (Как программировать на С++) Хотя о нем я узнал только ко 2 семестру. До этого читал "С++ для чайников" и смотрел уроки teantog-a по ютюбу И главное - это практика, практика и еще раз практика. Забей на выражение "ну нам такое не давали, этого еще не было, я такое не знаю" - учи сам. Здесь все лежит на самопознании.

А вот первая задачка на С, т.к. некоторые преподователи могут потребовать именно на обычном
да именно на обычном Но я паралельно литературу по с++ почитываю, поэтому переписать на си смогу )

Хотял же Дайтел'я взять Сегодня поеду в магазин.

Но ваша программа выписывает ВСЕ делители, а нужно только простые Можно конечно записать все делители в массив, а потом перебрать (решето Эратосфена применить например), но данном этапе уровень знаний просто не позволяет Хотя можно будет попробовать запрограммировать )
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
16.10.2011, 13:59
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <conio.h> // áèáëèîòåêà äëÿ getch()
#include <stdio.h>
 
int main(void)
{
    int a;
    printf("Enter a: ");
    scanf ("%i", &a);
    for (int i = 2; i <= a; i++)
        if (a % i == 0) // åñëè îñòàòîê îò äåëåíèÿ a íà i ðàâåí íóëþ íà÷èíàåì ïðîâåðêó äåëèòåëÿ
            for (int j = 2; j <= i; j++)
            {
                if (i % j == 0 && j != 1 && j != i) // äåëèòåëü íåïðîñòîé
                    break;
                if (j == i) // åñëè äîøëè äî êîíöà, ò.å. äåëèòåëü - ïðîñòîé      
                    printf("%i ", i);
            }
    getch(); // ïàóçà
    return 0;
}
Добавлено через 3 минуты
Цитата Сообщение от wind_mill Посмотреть сообщение
вот так:

Или по заданному числу вывести все его делители, которые являются простыми числами? (a=25 результат=1, 5)
1 - не простое число
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
16.10.2011, 14:00
Цитата Сообщение от wind_mill
Сейчас читаю Керниган Риччи "язык программирования с"
Друзья, чтобы вы еще посоветовали почитать?
если ты её прочитаешь, ничего больше, кроме стандарта, читать не придётся
программирование и язык программирования - разные вещи
1
Фрилансер
Эксперт С++
 Аватар для Dekio
5845 / 1226 / 499
Регистрация: 23.11.2010
Сообщений: 3,373
Записей в блоге: 1
16.10.2011, 14:00
deleted
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
16.10.2011, 14:03
[del]
0
1 / 1 / 0
Регистрация: 16.10.2011
Сообщений: 45
16.10.2011, 14:15  [ТС]
Спасибо большое ! )
зы буду думать над лр2
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
16.10.2011, 14:17
Удаление повторяющихся слов из стоки на C
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.10.2011, 14:17
Помогаю со студенческими работами здесь

Пара вопросов от начинающего
Всем привет. Друзья, изучаю PHP по книге Дэвиса&amp;Филлипса от 2008 года. Возникло несколько вопросов. Хотел бы уточнить у людей, которые...

Парочка вопросов от начинающего.
Только начал обучаться Java, нуждаюсь в вашей помощи. Видео-урок по которому обучаюсь имеет битый файла где рассказывается про цикл...

Вопрос от начинающего программиста
Добрый день! Интересует вопрос: возможно ли отметить и измерить длину обозначенных отрезков на изображении в VB. Если да, то подскажите...

Трудности начинающего программиста
Всем привет, сегодня я решил начать изучать С++, так как в школе я прогуливал уроки информатики, поэтому в программировании я ничего не...

Игра начинающего программиста
В общем проблема такая есть игра, когда её запускаешь, то какой бы ты не выбрал уровень сложности то все равно выпадают только 2 вида...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru